forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   256-ричное в 2-ичное в 10-ричное... (http://forum.boolean.name/showthread.php?t=4800)

zheland 18.10.2007 14:53

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


dimanche13 18.10.2007 15:13

Re: 256-ричное в 2-ичное в 10-ричное...
 
print hex(value) ???

256-ричное число в 2-ичное $)

SubZer0 18.10.2007 17:20

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ричную а потом в двоичную...

:)

Magus 18.10.2007 21:49

Re: 256-ричное в 2-ичное в 10-ричное...
 
Еще я когда-то выкладывал код проги на си, которая осуществляет перевод из одной системы счисления в другую.
тут

zheland 25.10.2007 23:35

Re: 256-ричное в 2-ичное в 10-ричное...
 
Я знаю:
Перевод из десятичного в двоичное-'Bin':)

Я _!не!_знаю:


Перевод из двоичного в десятичное-?????:(


:SOS:

пОМОГИТЕ с пЕРЕВОДОМ
из двоичного в десятичное


Tadeus 25.10.2007 23:44

Re: 256-ричное в 2-ичное в 10-ричное...
 
http://ru.wikipedia.org/wiki/Двоичная_система_счисления
Вот тут есть алгоритм - составь функцию ;)

SBJoker 26.10.2007 00:02

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

Писал экспромтом..может где и ошибся но смысл думаю понятен

zheland 26.10.2007 18:33

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

А так Супер:super:

SBJoker 26.10.2007 20:04

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


zheland 26.10.2007 22:28

Re: 256-ричное в 2-ичное в 10-ричное...
 
А как узнать остаток от деления???
Сорри за глуповатый вопрос:@ Ну забыл,бывает с каждым:4to:

Tadeus 26.10.2007 22:33

Re: 256-ричное в 2-ичное в 10-ричное...
 
Цитата:

Mod
Параметры
Нет.

Описание
Вообще-то, эта команда делит Ваше число столько раз, сколько оно остается кратным делителю, затем возвращает Вам то, что осталось.
Т.е. возражает остаток от деления нацело


Пример
; MOD Пример

; Делит 10 на 3, пока это возможно; Потом отображает оставшееся значение, в этом случае 1

Print 10 MOD 3
;)

zheland 26.10.2007 23:22

Re: String<--->Int
 
Немного не вы тему,но всё таки:
String->Int("1100"->1100)
Int->String(1010->"1010")

КАК

Tadeus 26.10.2007 23:25

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$

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете
Учись юзать справку ;)

zheland 26.10.2007 23:36

Re: 256-ричное в 2-ичное в 10-ричное...
 
Ты прав......
только в справке BMax'а сложно разобраться!?!?!?
И примеров функций нету?!?!?!

Но str в BMax нету,,,,,,

jimon 26.10.2007 23:51

Re: 256-ричное в 2-ичное в 10-ричное...
 

drunnik
не применяй столько елементов оформления текста


Часовой пояс GMT +4, время: 18:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot