![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объявление двоичных констант [D6]
Ops © (2002-12-16 15:29:00)const b = 1111111111110011b;
c = 1111111111101111b;
НЕПРОХОДИТ...
Fantasist (2002-12-16 19:50:00) [1]
> i<=Length(aStr) и inc(i) в цикле забыл (как всегда)
Угу, поэтому for-цикл предпочтительнее: более наглядно и часто более быстро.
Ops (2002-12-16 18:32:00) [2]Спасибо.
Красивое решение... Попробую... Уже начал...
В идеале он должен найти решение и остановится но пока пусть будет именно так...
han_malign (2002-12-16 18:27:00) [3]i <=Length(aStr) и inc(i) в цикле забыл (как всегда)
han_malign (2002-12-16 18:25:00) [4]> Менять часто это так - приходит палмовед и говорит нука меняй битики с xxxxxx0xxx на xxxxxx1xxx.
- если уж ломает делать как все нормальные люди - завести набор констант представляющих каждый бит и собирать значение через or- можешь, для наглядности, сделать так(все равно значение один раз вычисляется):
const _sb="01001010110010101";
const b: DWORD=0;
function s2b(const aStr : string): DWORD;
var i: integer;
begin
Result:=0;
i:=1;while(i<Length(aStr))do begin
Result:=(Result shl 1);
if(aStr[i]="1")then Result:=Result or 1;
end;
end;
....................
initialization
b:=s2b(_sb);
end.
Digitman (2002-12-16 17:34:00) [5]
> Ops (16.12.02 16:39)
> Что скажите на поводу ДОКИ - или там что-то не то написано???
Там-то как раз написано) .. только ты видать не читаешь доку)
>>the built-in assembler also supports binary,...
Ясно же написано : встроенный ассемблер также поддерживает декларации, представленные в дв.системе
Здесь имеется ввиду, что та версия компилятора, "доку" которой ты сподобился процитировать, поддерживает эту возможность ТОЛЬКО в блоках, содержащих Asm-текст
Anatoly Podgoretsky (2002-12-16 17:26:00) [6]Ops (16.12.02 17:18)
Плюс/минус 8, занимает не более времени, чем в двоичном виде
Reindeer Moss Eater (2002-12-16 17:24:00) [7]можно написать :
asm
shr eax,1001010b
и это будет компилироваться
можно написать:
const a = 1001010b;
но это никогда не будет компилироваться. Ни в одной из существующих версий Delphi с любыми опциями компилятора и любыми настройками.
Ops (2002-12-16 17:18:00) [8]1. Раньше все компилялось. Факт. !!! (почему сейчас не проходит непойму сам).
2. Менять часто это так - приходит палмовед и говорит нука меняй битики с xxxxxx0xxx на xxxxxx1xxx. Компилимся - проверяем прокачку и потери данных ;-)...
Anatoly Podgoretsky (2002-12-16 17:11:00) [9]Ops (16.12.02 16:04)
Как тогда это понимать
Просто надо менять битики часто-
Reindeer Moss Eater (2002-12-16 17:05:00) [10]Не компилится потому, что компилятор не поддерживает этого. Будем продолжать упорствовать?
Ops (2002-12-16 17:02:00) [11]Я эти константы и неменяю...
НО не компилится программа!!!
Я уже конечно переделал на шестнадцатеричные. Все равно непонятно!!!
Anatoly Podgoretsky (2002-12-16 16:58:00) [12]Ops (16.12.02 16:04)
Ты никак это не сможешь менять, это чистые константы
Reindeer Moss Eater (2002-12-16 16:54:00) [13]Там все правильно написано
Ops (2002-12-16 16:39:00) [14]Что скажите на поводу ДОКИ - или там что-то не то написано???
Reindeer Moss Eater (2002-12-16 16:25:00) [15]Обидно что РАНЬШЕ 100% компилялась!!!
Может надо просто сильнее жать на F9? :)))
Ops (2002-12-16 16:20:00) [16]Numeric constants
Numeric constants must be integers, and their values must be between –2,147,483,648 and 4,294,967,295.
By default, numeric constants use decimal notation, but the built-in assembler also supports binary, octal, and hexadecimal. Binary notation is selected by writing a B after the number, octal notation by writing an O after the number, and hexadecimal notation by writing an H after the number or a $ before the number.
Numeric constants must start with one of the digits 0 through 9 or the $ character. When you write a hexadecimal constant using the H suffix, an extra zero is required in front of the number if the first significant digit is one of the digits A through F. For example, 0BAD4H and $BAD4 are hexadecimal constants, but BAD4H is an identifier because it starts with a letter.
Calm (2002-12-16 16:17:00) [17]
> только D отбрасывает на$иг букву b
> и считает это обычным десятичным числом.
А вот это я не проверял :(
Reindeer Moss Eater (2002-12-16 16:13:00) [18]>Calm ©
Я пытаюсь убедить, что нет в Object Pascal двоичных констант
Zz_ (2002-12-16 16:12:00) [19]Ну да. У меня тоже компилится,
только D отбрасывает на$иг букву b
и считает это обычным десятичным числом.
Calm (2002-12-16 16:09:00) [20]
> Reindeer Moss Eater (16.12.02 16:07)
> By default, numeric constants use decimal notation, but
> the built-in assembler also supports binary, octal, and
> hexadecimal.
Вы пытаетесь меня убедить, что как написал Ops нельзя делать?