Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Двоичные константы   Найти похожие ветки 

 
snake_r   (2005-10-07 11:11) [0]

Здравствуйте! подскажите как пишутся двоичные константы :)
забыл как :( как шеснадцетиричные помню, а как двичные забыл  б...я :)
Const flags:Integer=......;  ?????


 
begin...end ©   (2005-10-07 11:12) [1]

В Delphi -- никак.


 
snake_r   (2005-10-07 11:16) [2]

ну вот блин :(
хотелось для наглядности написать именно в двоичном виде


 
Woolen ©   (2005-10-07 11:33) [3]


> хотелось для наглядности написать именно в двоичном виде

Для наглядности можно делать таким извращенным способом:
const
 A: Byte = 1 or 2 or 4;//Три крайних бита выставлены


 
han_malign ©   (2005-10-07 14:35) [4]


> хотелось для наглядности написать именно в двоичном виде

общепринятая практика(C(и)-образно):
const
     FLAG_0 = $00000001;
    ..............................
     FLAG_31 = $80000000;

     FLAG_FIRSTnLAST = FLAG_0 or FLAG_31;
.........................
//initialize
flags = FLAG_x or ...;
.........................
//set
flags = flags or FLAG_x;
.........................
//clear
flags = flags and not FLAG_x;
.........................
//both
if(flags and FLAG_FIRSTnLAST = FLAG_FIRSTnLAST)then ...
.........................
//any
if(flags and FLAG_FIRSTnLAST <> 0)then ...
.........................
//only
if(flags and FLAG_FIRSTnLAST = FLAG_0)then ...


а в Delphi:
type
   TFlag = (flXXX1,..., flXXX32);
   TFlags = set of TFlag;
const FirstAndLast = [flXXX1, flXXX32];
.............
flags = [fl1,...];
Include(flags, fl1);
Exclude(flags, fl1);
if(fl.. in flags)...
if(flags * [fl1,...,fl32] = FirstAndLast)...
if(flags * (FirstAndLast + [fl4]) <> [] )...
et cetera, et cetera, et cetera...

А для наглядности существуют комментарии..


 
Anatoly Podgoretsky ©   (2005-10-07 20:20) [5]

Пишутся так 101010B в предложениях DB,DW etc


 
palva ©   (2005-10-07 22:52) [6]

Free Pascal позволяет использовать префикс %

var
 i: integer;
begin
 i := %1010;
 writeln(i); // 10
end.


 
Германн ©   (2005-10-08 01:59) [7]

2 Anatoly Podgoretsky ©   (07.10.05 20:20) [5]

>Пишутся так 101010B в предложениях DB,DW etc

Если не трудно, пожалуйста дайте пример описания константы с помощью ассемблерных директив DB и DW. Ей богу, интересно. Код на ассемблере вставлял, более того, помню и inline, но то код, а вот описание? :(


 
Германн ©   (2005-10-08 02:05) [8]

Хотя прошу прощения. В сабже нет явного вопроса - "как описАть константу, используя двоичный код". :(


 
SergP.   (2005-10-08 02:52) [9]


> snake_r   (07.10.05 11:16) [2]
> ну вот блин :(
> хотелось для наглядности написать именно в двоичном виде


Для наглядности можно коментарий написать...

Const
   flags:Integer=16; //  10000


 
begin...end ©   (2005-10-08 09:22) [10]

> Германн ©   (08.10.05 01:59) [7]

Это возможно только в ассемблерных вставках. [5] не имеет отношения к исходному вопросу -- автор справшивал про обычную форму объявления констант.


 
Anatoly Podgoretsky ©   (2005-10-08 13:21) [11]

SergP.   (08.10.05 02:52) [9]
Это делается не так
const
  b00010000 = 16;



Страницы: 1 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.059 c
14-1128699533
GrayFace
2005-10-07 19:38
2005.10.30
Аберон - что за зверь?


1-1128412642
Woolen
2005-10-04 11:57
2005.10.30
TApplicationEvents.OnMessage работает не совсем понятно


1-1127581102
Sysanin
2005-09-24 20:58
2005.10.30
Нажатие несколький кнопок


14-1128514901
syte_ser78
2005-10-05 16:21
2005.10.30
Посоветуйте новостной скрипт


2-1127728356
SMATMP
2005-09-26 13:52
2005.10.30
Bitmap.PixelFormat