Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 18.10.2007, 14:53   #1
zheland
Разработчик
 
Регистрация: 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
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: 256-ричное в 2-ичное в 10-ричное...

print hex(value) ???

256-ричное число в 2-ичное $)
__________________
(Offline)
 
Ответить с цитированием
Старый 18.10.2007, 17:20   #3
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 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
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Re: 256-ричное в 2-ичное в 10-ричное...

Еще я когда-то выкладывал код проги на си, которая осуществляет перевод из одной системы счисления в другую.
тут
(Offline)
 
Ответить с цитированием
Старый 25.10.2007, 23:35   #5
zheland
Разработчик
 
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений
(для 95 пользователей)
Вопрос Re: 256-ричное в 2-ичное в 10-ричное...

Я знаю:
Перевод из десятичного в двоичное-'Bin'

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


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




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

(Offline)
 
Ответить с цитированием
Старый 25.10.2007, 23:44   #6
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: 256-ричное в 2-ичное в 10-ричное...

http://ru.wikipedia.org/wiki/Двоичная_система_счисления
Вот тут есть алгоритм - составь функцию
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 00:02   #7
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 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
zheland
Разработчик
 
Регистрация: 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
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 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
zheland
Разработчик
 
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений
(для 95 пользователей)
Вопрос Re: 256-ричное в 2-ичное в 10-ричное...

А как узнать остаток от деления???
Сорри за глуповатый вопрос Ну забыл,бывает с каждым
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 22:33   #11
Tadeus
Троллота
 
Регистрация: 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
zheland
Разработчик
 
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений
(для 95 пользователей)
Печаль Re: String<--->Int

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

КАК
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 23:25   #13
Tadeus
Троллота
 
Регистрация: 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
zheland
Разработчик
 
Регистрация: 18.10.2007
Сообщений: 349
Написано 64 полезных сообщений
(для 95 пользователей)
Re: 256-ричное в 2-ичное в 10-ричное...

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

Но str в BMax нету,,,,,,
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 23:51   #15
jimon
 
Сообщений: n/a
Re: 256-ричное в 2-ичное в 10-ричное...


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


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com