Главная страница
    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.043 c
15-1198493979
Skier
2007-12-24 13:59
2008.02.03
Посоветуйте видеокамеру...


8-1173018362
Quelle
2007-03-04 17:26
2008.02.03
Градиент


2-1199293276
Первокласник Вася
2008-01-02 20:01
2008.02.03
Как работать с дисками?


1-1192691199
Alex_Ne
2007-10-18 11:06
2008.02.03
Вызов MDICild-формы из Dll


15-1198676715
Cyrax
2007-12-26 16:45
2008.02.03
Таинственное исчезновение анкет...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский