Главная страница
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.053 c
3-1127153296
WonderfulDay
2005-09-19 22:08
2005.10.30
create table


2-1128680067
Os
2005-10-07 14:14
2005.10.30
Базы данных


10-1106204537
Vlash
2005-01-20 10:02
2005.10.30
Продолжение работы COM-сервера после закрытия клиента


14-1128537581
bSava
2005-10-05 22:39
2005.10.30
Помощник Microsoft


14-1128351667
ArtemESC
2005-10-03 19:01
2005.10.30
Windows