|
18.10.2007, 14:53
|
#1
|
Разработчик
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений (для 95 пользователей)
|
256-ричное в 2-ичное в 10-ричное...
Вопрос Как Перевести например:
256-ричное число в 2-ичное: Я-11111111
2-ричное в 16-ричное:1111-f
10-ричное в 16-ричное:15-f
И.т.д. .....................
Хочу сделать функцию:
Function BMax_XtoX(BMax_Number$,BMax_MaxNum,BMax_RetMaxNum)
;BMax_Number-число("11")
;BMax_MaxNum-система исчисления числа BMax_Number(10)
;BMax_MaxNum-перевести в систему исчисления(16)
..........
Return BMax_Return$;Возвратит "a"
End Function
|
(Offline)
|
|
18.10.2007, 15:13
|
#2
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
print hex(value) ???
256-ричное число в 2-ичное $)
|
(Offline)
|
|
18.10.2007, 17:20
|
#3
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
посоветую такой документ...
цитата из него:
Пример на C для перевода 18 в 7-ричную систему выглядит так: (корректно работает до основания 10, дальше появятся «цифры» :;<=>?@012 и т.д.)
void perevod( unsigned int num, unsigned int base )
{
#define LENGTH ( 8 * sizeof( unsigned int ) ) /* размер с запасом */
char str[ LENGTH + 1]; /* +1 для символа [[EOS]] */
char *pstr = str + LENGTH - 1; /* начинаем заполнять цифрами с конца */
str[ LENGTH ] = '\0'; /* добавляем EOS */
if( num == 0 ) *pstr = '0'; /* если цикл не будет крутиться */
else
do
{
*pstr-- = '0' + num % base; /* заполняем цифрами, сдвигаясь влево */
num /= base;
}
while( num > 0 );
printf( "%s\n", pstr + 1 ); /* печатаем, начиная с 1го ненулевого символа */
#undef LENGTH /* уже не нужно */
}
void main()
{
perevod( 18, 7 );
}
|
также приведены алгоритмы по перевода любых систем в десятеричную... Ваш вариант можно комбинировать... 256ричную в 10ричную а потом в двоичную...
|
(Offline)
|
|
18.10.2007, 21:49
|
#4
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений (для 205 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Еще я когда-то выкладывал код проги на си, которая осуществляет перевод из одной системы счисления в другую.
тут
|
(Offline)
|
|
25.10.2007, 23:35
|
#5
|
Разработчик
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений (для 95 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Я знаю:
Перевод из десятичного в двоичное-'Bin'
Я _!не!_знаю:
Перевод из двоичного в десятичное-?????
пОМОГИТЕ с пЕРЕВОДОМ
из двоичного в десятичное
|
(Offline)
|
|
25.10.2007, 23:44
|
#6
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
|
(Offline)
|
|
26.10.2007, 00:02
|
#7
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
2ичное в десятичное проще паряной репы, десятичное=сумме всех чисел полученых возведением 2йки в степень соответствующую порядковому положению каждого знака в 2ичном числе начиная справа но только в случае если это еденица.
иначе говоря:
function Bin2Dec%(binary$)
for i%=len(binary) to 1 step -1
res%=res%+ int(Mid(binary, i,1))*2^(len(binary)-i+1)
next
return res%
end function
Писал экспромтом..может где и ошибся но смысл думаю понятен
__________________
|
(Offline)
|
|
26.10.2007, 18:33
|
#8
|
Разработчик
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений (для 95 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Спасибо!!!
Только !error! :
Function Bin2Dec%(binary$)
For i%=Len(binary) To 1 Step -1
res%=res%+ Int(Mid(binary, i,1))*2^(Len(binary)-i+1)
Next
res%=res%/2
Return res%
End Function
А так Супер
|
(Offline)
|
|
26.10.2007, 20:04
|
#9
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Вот рабочий код:
Function Bin2Dec%(binary$)
For i%=Len(binary) To 1 Step -1
res%=res%+ Int(Mid(binary, i,1))*2^(Len(binary)-i)
Next
Return res%
End Function
__________________
|
(Offline)
|
|
26.10.2007, 22:28
|
#10
|
Разработчик
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений (для 95 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
А как узнать остаток от деления???
Сорри за глуповатый вопрос Ну забыл,бывает с каждым
|
(Offline)
|
|
26.10.2007, 22:33
|
#11
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Mod
Параметры
Нет.
Описание
Вообще-то, эта команда делит Ваше число столько раз, сколько оно остается кратным делителю, затем возвращает Вам то, что осталось.
Т.е. возражает остаток от деления нацело
Пример
; MOD Пример
; Делит 10 на 3, пока это возможно; Потом отображает оставшееся значение, в этом случае 1
Print 10 MOD 3
|
|
(Offline)
|
|
26.10.2007, 23:22
|
#12
|
Разработчик
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений (для 95 пользователей)
|
Re: String<--->Int
Немного не вы тему,но всё таки:
String->Int("1100"->1100)
Int->String(1010->"1010")
КАК
|
(Offline)
|
|
26.10.2007, 23:25
|
#13
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Int( value )
Параметры
value = число или строка, представляющая число
Описание
Преобразовывает значение в ближайшее целое.
Это то же самое, что и автоматическое конвертирование типов Blitz.
Итак, две команды...
n = значение
n = Int( значение )
... делает то же самое, когда n имеет значение целого числа.
Если Int приложить к дробному числу – оно будет сконвертировано:
Int( "10" ) ........ результат 10
Int( "3.7" ) ....... результат 3, остановка на "." которая не может быть частью целого
Int( "junk3" ) .... результат 0, остановка на "j"
Int конвертирует дробное, приравнивая его к ближайшему целому числу.
ПОМНИТЕ: Это не традиционное значение Int в Basic.
Как насчет чисел, которые на одинаковом отдалении между целыми?
Округляется к ближайшему четному целому:
Int( 2.5 ) ... дает 2
Int( 3.5 ) ... дает 4
См. также: Floor и Ceil для других типов округления.
Пример
; Ceil / Floor / Int пример, три типа округления.
; Двигайте мышью. Escape - сброс.
Graphics 640, 480
Const KEY_ESC = 1
SetBuffer BackBuffer()
Origin 320, 240
MoveMouse 320, 240 : HidePointer
While Not KeyDown( KEY_ESC )
Cls
my = MouseY() - 240
Color 100, 100, 0
Line -320, my, 319, my
DrawNumberLine
y# = Float( -my ) / 32
Text 100, 50, " y = " + y
Text 100, 70, " Ceil( y ) = " + Ceil( y )
Text 100, 90, " Floor( y ) = " + Floor( y )
Text 100, 110, " Int( y ) = " + Int( y )
Flip
Wend
End
Function DrawNumberLine( ) ; вертикальная линия с числовыми значениями
Color 255, 255, 255
Line 0, -240, 0, 239
For n = -7 To 7
yn = -32 * n
Line -2, yn, 2, yn
Text -30, yn - 6, RSet( n, 2 )
Next
End Function
Главная страница
Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете
|
Str variable/value
Параметры
variable/value = числовая переменная
Описание
Используйте эту команду, чтобы преобразовать числовое значение в строковое значению для использования с командами обработки строк. Blitz запросто печатает числовые значения так же, как и строчные, но если Вы захотите использовать такие функции, как LEFT$ или подобные, Вы должны будете преобразовать вашу числовую переменную в строчную. Заметьте: в процессе преобразования все 6 десятичных цифрт будут представлены в виде числа с плавающей запятой .
Если Вы пожелаете выполнить обратное действие - преобразовать строку в число, то не найдете в Blitz-е никакой команды, эквивалентной команде Val в другтх версиях Бейсика. Вместо этого просто присвойте строковую переменную числовой переменной, и Blitz сам преобразует её.
Пример
; Пример STR
num#=2.5
mynum$=str num#
Print mynum$
Главная страница
Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете
|
Учись юзать справку
|
(Offline)
|
|
26.10.2007, 23:36
|
#14
|
Разработчик
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений (для 95 пользователей)
|
Re: 256-ричное в 2-ичное в 10-ричное...
Ты прав......
только в справке BMax'а сложно разобраться!?!?!?
И примеров функций нету?!?!?!
Но str в BMax нету,,,,,,
|
(Offline)
|
|
26.10.2007, 23:51
|
#15
|
|
Re: 256-ричное в 2-ичное в 10-ричное...
drunnik
не применяй столько елементов оформления текста
|
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:22.
|