![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Двоичная константа [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";