|
Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново... |
12.09.2006, 23:11
|
#1
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Перевод в десятичное число
int=ToInt("10011",2)
print int
waitkey()
Function ToInt#(inputnum$,base)
If base=10 Return inputnum
If base>10 Return 0
l=Len(inputnum$)
For i=0 To l-1
rightnum=Right(inputnum$,1)
If rightnum<base Then
If rightnum>0 Then
intnum#=intnum#+base^i*rightnum
EndIf
Else Return 0
EndIf
inputnum$=Left$(inputnum$,Len(inputnum$)-1)
Next
Return intnum#
End Function
Описание: переводит в десятичное число НЕОТРИЦАТЕЛЬНОЕ число с основанием НЕ БОЛЬШЕ 10
Возможно медленно (т.к. переводит прямо в лоб), но как сделать по другому не знаю...
|
(Offline)
|
|
12.09.2006, 23:25
|
#2
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Перевод в десятичное число
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
13.09.2006, 00:30
|
#3
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений (для 205 пользователей)
|
Re: Перевод в десятичное число
Перевод из любой СС в любую. Правда, на сишнике.
http://www.boolean.name/showthread.php?t=121
|
(Offline)
|
|
13.09.2006, 00:47
|
#4
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Перевод в десятичное число
[highlight=blitzbasic]
num$ = Input("Enter a binary number: ")
Print ToInt(num, 2)
num$ = Input("Enter a hexa-decimal number: ")
Print ToInt(num, 16)
WaitKey()
End
Function ToInt(Number$, base%)
Select base
Case 2
For i = 0 To Len(Number) - 1
token$ = Mid(Number, Len(Number) - i, 1)
If token Then result = result + 2^i
Next
Return result
Case 10
Return Int(Number)
Case 16
For i = 0 To Len(Number) - 1
token$ = Mid(Number, Len(Number) - i, 1)
Select Lower(token)
Case "a"
token = 10
Case "b"
token = 11
Case "c"
toden = 12
Case "d"
token = 13
Case "e"
token = 14
Case "f"
token = 15
End Select
If token Then result = result + 16^i * Int(token)
Next
Return result
End Select
End Function[/highlight]
|
(Offline)
|
|
23.09.2006, 22:03
|
#5
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Re: Перевод в десятичное число
Вот добыл нечто крутое:
; Taken from http://www.codersworkshop.com/viewpo...id=12259#12259
; modified to allow for upper or lower case
Function BaseToDec(basestr$, base)
;Converts a number of a particular base (up to 34) to a decimal integer
;eg BaseToInt("110",2 ) = 6
; BaseToInt("A",16 ) = 10
If base>34 Then Return 0
endnum = 0:cnt=0
For i=Len(basestr) To 1 Step -1
char$ = Upper(Mid(basestr,i,1))
If char=>"A" And char=<"Z"
charnum = Asc(char)-Asc("A")+10
Else
charnum = char
End If
If charnum>base Then Return 0 ;ERROR!
endnum = endnum + charnum * (base^cnt)
cnt=cnt+1
Next
Return endnum
End Function
Function DecToBase$(intnum, base)
;Converts a decimal integer to a particular base (up to 34)
;eg IntToBase(10,2) = "1010"
intnum=intnum+1
If base>34 Then Return "0"
endstr$="":cnt=0
While base^cnt<intnum
;Find the length of the number
cnt=cnt+1
Wend
For i=cnt-1 To 0 Step -1
charnum=0
Repeat
charnum=charnum+1
Until intnum-charnum*(base^i)=<0
charnum=charnum-1
If charnum>9
char$ = Chr(Asc("A")-10+charnum)
Else
char$ = charnum
End If
endstr=endstr+char
intnum = intnum - charnum*(base^i)
Next
Return endstr
End Function
|
(Offline)
|
|
25.12.2009, 16:30
|
#6
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Перевод в десятичное число
Local c%=124
Local p1%=Floor(c/100)
Local p2%=Floor(c/10)-p1*10
Local p3%=c Mod 10
Print p1+""+p2+""+p3
Local bp1=Bin(p1)
Local bp2=Bin(p2)
Local bp3=Bin(p3)
Print bp1+" "+bp2+" "+bp3
WaitKey()
End
примерно так
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:37.
|