Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Двоичная константа [D6, Win2k]


Noname_ ©   (2002-12-13 16:25:00) 

Как в Delphi задать двоичную константу (типа $AA для шестнадцатеричной)?


Yr2   (2002-12-13 21:18:00) [1]

To Noname_
А неужели так трудно число, известное в двоичном виде, перевести в шестнадцатиричную систему, которую понимает компилятор? По-моему все программеры знают наизусть двоичный код чисел от 0 до F. Если всё же есть страх ошибиться, то пользуйтесь виндовым калькулятором в режиме "научный". Там есть переводы во все системы (и думать не надо :) ).
Что касается присвоения в теле программы значения переменной, записанной в строковом виде, то придется написать функцию, аналогичную StrToInt, толко для преобразования не из десятичной системы, а из двоичной. По-моему тоже не сложно.


Fantasist   (2002-12-13 20:45:00) [2]


> Ты будешь утверждать, что это переменная, обычная двоичная
> константа, а вот это $8D или 8Dh щестнадцатиричная, вот
> это 141 десятичная, вот это 215о восьмиричная.
> Самые что ни на есть обычные константы.


Правильно, а потому и существует такое понятие как "литерал".
Константа - это константа, а последовательность симвлов, обрабатываемая компилятором и имеющая некоторое константное значение - это литерал. В Делфи для целых типов существуют десятичные и шестацитеричные литералы. Двоичных нет.


Anatoly Podgoretsky   (2002-12-13 20:19:00) [3]

Noname_ (13.12.02 17:44)
Ну зачем мудрить, почему не устраивают другие формы представления, ведь под желанием должно же быть какое то основание, Борланд просто отказался от двоичныих и восьмеричных констант, за исключением АСМ кода.


TTCustomDelphiMaster   (2002-12-13 19:48:00) [4]

var
Peremennaya: integer;
...
asm
Mov Peremennaya, 10101010b
end;


Noname_   (2002-12-13 17:44:00) [5]

Правильно, но как переменной присвоить число, записанное в двоичном виде?


Anatoly Podgoretsky   (2002-12-13 17:26:00) [6]

Ты будешь утверждать, что это переменная, обычная двоичная константа, а вот это $8D или 8Dh щестнадцатиричная, вот это 141 десятичная, вот это 215о восьмиричная.
Самые что ни на есть обычные константы.


Noname_   (2002-12-13 17:23:00) [7]

Я не спорю, что можно так:
asm
push eax
mov al,10101010b
mov [bb], al
pop eax
end;
Но овчинка выделки не стоит. Проще пересчитать в уме в шестнадцатеричную и записать: bb:=$aa;


LongIsland   (2002-12-13 17:21:00) [8]


> Anatoly Podgoretsky © (13.12.02 17:08)


> В любом месте АСМ вставки, например MOV eax, 10001101b

И какая же это константа?


Anatoly Podgoretsky   (2002-12-13 17:08:00) [9]

LongIsland © (13.12.02 16:58)
В любом месте АСМ вставки, например MOV eax, 10001101b
В рвзделе const нельзя, зв предалами asm end


LongIsland   (2002-12-13 16:58:00) [10]


> Anatoly Podgoretsky © (13.12.02 16:51)
> В АСМ вставке можно

Угу! В разделе const?:-) Или действительно можно? (С испугом в глазах):-) Джентельмены...


Anatoly Podgoretsky   (2002-12-13 16:51:00) [11]

В АСМ вставке можно


LongIsland   (2002-12-13 16:49:00) [12]


> Noname_ (13.12.02 16:41)

Дельфи не работает с двоичными константами и переменными. И задавать их надо, как строки


Noname_   (2002-12-13 16:41:00) [13]

bb: Byte
.......
bb:=$aa; - корректно
bb:="10101010"; - некорректно, потому что "10101010" воспринимается как символьная строка


LongIsland   (2002-12-13 16:26:00) [14]

bin = "100101001";


Наверх

Титульная страница Поиск, карта сайта Написать письмо