Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Вниз

двоичная запись   Найти похожие ветки 

 
гость   (2008-01-08 02:41) [0]

как сообщить компилятору что запись является двоичным представлением числа
a:byte;
a:=10011110


 
DrPass ©   (2008-01-08 02:48) [1]

Никак. К чему этот изврат, если есть шестнадцатеричная запись?


 
Германн ©   (2008-01-08 02:55) [2]

Гости мне уже надоели.
Примите и проч.


 
гость   (2008-01-08 02:57) [3]

переменная a это набор флагов
1 бит отвечает за одно
2 бит за другое
...
запись 1100110 or 00000001 гораздо наглядние
нежели $66 or $1


 
Германн ©   (2008-01-08 03:13) [4]


> гость   (08.01.08 02:57) [3]
>
> переменная a это набор флагов
> 1 бит отвечает за одно
> 2 бит за другое
> ...
> запись 1100110 or 00000001 гораздо наглядние
> нежели $66 or $1
>

А при чём тут запись?


 
{RASkov} ©   (2008-01-08 03:26) [5]

> [3] гость   (08.01.08 02:57)

Никак. Уже сказали об этом.... Либо десятичным представлением, либо шеснадцатиричным, либо строковым.... в строковом, как понимаешь, можно представить все, и твой двоичный вариант, но, как должен понимать, у строк и свой минус есть :)

> запись 1100110 or 00000001 гораздо наглядние
> нежели $66 or $1

Кому любоваться-то ?


 
гость   (2008-01-08 03:28) [6]

слово ( запись) в дальнейшем читать как  (строка кода)


 
гость   (2008-01-08 03:44) [7]

придется прописать константы с осмысленными именами присвоить им десятичные значения и ими пользоватся

спасибо всем. тема закрыта.


 
Германн ©   (2008-01-08 03:55) [8]


> гость   (08.01.08 03:44) [7]
>
> придется прописать константы с осмысленными именами присвоить
> им десятичные значения и ими пользоватся

Ну наконец-то разумное высказывание.
Хотя ...
А шестнадцатиричные ничем не хуже.

А запись всё же лучше, если значения констант не превышают 255.


 
Loginov Dmitry ©   (2008-01-08 10:19) [9]

> как сообщить компилятору что запись является двоичным представлением
> числа
> a:byte;
> a:=10011110


Так пойдет?

 a: byte;

 a := $9E; //10011110


 
Anatoly Podgoretsky ©   (2008-01-08 10:50) [10]

> гость  (08.01.2008 02:41:00)  [0]


const
  b_10011110 = $9E;
...
a := b_10011110;


 
palva ©   (2008-01-08 12:09) [11]


> гость   (08.01.08 03:44) [7]
> придется прописать константы с осмысленными именами присвоить
> им десятичные значения и ими пользоватся

Ужас! Вы раньше наверно только на си писали? Почитайте Вирта, самую первую книжку про паскаль. На паскале это делают так:
{$APPTYPE CONSOLE}
uses SysUtils;
type
 TMyFlag = (Flag1, Flag2, Flag3, Flag4, Flag5, Flag6, Flag7, Flag8);
 TMyFlagSet = set of TMyFlag;
var
 fs: TMyFlagSet;
begin
 fs := [Flag5, Flag1, Flag8, Flag1]; // Флаги даже могут повторяться
 WriteLn(IntToHex(PInteger(@fs)^, 2)); // 91
end.


 
palva ©   (2008-01-08 12:49) [12]

Кстати, мастера, никто не знает, как можно инвертировать элемент множества?
Давно интересовал этот вопрос.

{$APPTYPE CONSOLE}
uses SysUtils;
type
 TMyFlag = (Flag1, Flag2, Flag3, Flag4, Flag5, Flag6, Flag7, Flag8);
 TMyFlagSet = set of TMyFlag;
var
 fs: TMyFlagSet;
begin
 fs := [Flag5, Flag1, Flag8, Flag1];
 fs := fs + [Flag3] - [Flag8]; // Поднятие/опускание флага
 // только вот инвертирование флага непонятно как делать
 // Вот такой длинный код
 if Flag5 in fs then
   fs := fs - [Flag5]
 else
   fs := fs + [Flag5];
 // хотелось бы заменить на нечто такое:
 // fs := fs OR [Flag5];
 // но, конечно, компилятор не дает
 WriteLn(IntToHex(PInteger(@fs)^, 2)); // 05
end.


 
palva ©   (2008-01-08 12:51) [13]

Пардон
// fs := fs XOR [Flag5];


 
Anatoly Podgoretsky ©   (2008-01-08 12:57) [14]

> palva  (08.01.2008 12:49:12)  [12]

Operator Operation Operand types Result type Example
+ union set set Set1 + Set2
- difference set set S - T
* intersection set set S * T
<= subset set Boolean Q <= MySet
>= superset set Boolean S1 >= S2
= equality set Boolean S2 = MySet
<> inequality set Boolean MySet <> S1
in membership ordinal, set Boolean A in Set1


 
Германн ©   (2008-01-08 14:58) [15]


> palva ©   (08.01.08 12:49) [12]
>
> Кстати, мастера, никто не знает, как можно инвертировать
> элемент множества?
>

Конкретно в твоем примере элементарно. С помощью absolute и Ord.



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

Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.048 c
3-1190756478
vladimir_Lav
2007-09-26 01:41
2008.02.03
Временная таблица в MSSQL


15-1199113667
Gydvin
2007-12-31 18:07
2008.02.03
С новым годом!


2-1199966099
E
2008-01-10 14:54
2008.02.03
Запустить EXE файла из Основного не прибегая к разрезанию и без..


15-1198693128
Terc
2007-12-26 21:18
2008.02.03
Кто шарит в Lazarus


2-1199716819
TDBGrid
2008-01-07 17:40
2008.02.03
Снятие выделения строк TDBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский