Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизКак посмотреть все биты байта??? Найти похожие ветки
← →
AndrewVolkov (2002-11-22 20:40) [0]Добрый вечер всем.
Читаю байт
а как посмотреть его???
если я хочу узнать что в нем записано - типа 0 0 1 1 0 1 0 1
← →
Gigabyte (2002-11-22 21:01) [1]Используй логические операции и маски соответствующих бит:
0000 0001b == 1
0000 0010b == 2
0000 0100b == 4
и т.д.... Потом:
if (B and 1) <> 0 then "Бит 1 установлен"
if (B and 4) <> 0 then "Бит 4 установлен",
где B - твой байт.
← →
TTCustomDelphiMaster (2002-11-22 21:04) [2]var
b: byte;
i: integer;
s: string;
begin
b:=55;
for i := 0 to 7 do
if ((b shr i) and 1) = 1 then
s := "1" + s
else
s := "0" + s;
ShowMessage(s);
end;
← →
asmith (2002-11-22 21:05) [3]В Дельфи есть полезный класс TBits - обеспечивает в том числе доступ к отдельным битам, как к элементам массива.
← →
AndrewVolkov (2002-11-22 21:07) [4]to Gigabyte
Извини, но я че то ниче из этого не понял.
Если можно, можно кодом на Delphi
Что значит b в конце записи 0000 0001
и что значит and между (B и 1)
Поясните, а?
Спасибо
← →
Song (2002-11-22 21:17) [5]b в написании Gigabyte (22.11.02 21:01) означает признак двоичного числа.
← →
Ich Hasse (2002-11-22 21:20) [6]b расшифровывается как boolean
d - соответственно десядичная (decadence кажется)
h - hex (шестнадцатиричная)
← →
TTCustomDelphiMaster (2002-11-22 21:23) [7]t - троичная
f - четверичная
fv - пятеричная
s - шестиричная
sv - семиричная
o - восьмиричная
и т.д.
← →
AndrewVolkov (2002-11-22 21:26) [8]TTCustomDelphiMaster там почти все ясно, спасибо, только что правильно означает запись ((b shr i) and 1). То что сдвигаемся на 1 (бит или байт) вправо (почему направо, а не налево) и что значит (and 1).
А про 2 объяснение - про признак я понял, но как это реализовать в коде не совсем ясно.
В книгах полазил, там не объясняется это.
← →
TTCustomDelphiMaster (2002-11-22 21:31) [9]
> То что сдвигаемся на 1 (бит или байт)
на бит
> вправо (почему направо, а не налево
потому что младшие разряды находятся справа
> и что значит (and 1).
Все биты кроме нулевого гасятся
> А про 2 объяснение - про признак я понял, но как это реализовать
> в коде не совсем ясно
Через кучу ifов
← →
Моджахед (2002-11-22 22:49) [10]
Ich Hasse © (22.11.02 21:20)
b расшифровывается как boolean
d - соответственно десядичная (decadence кажется)
h - hex (шестнадцатиричная)
:-)))
← →
Anatoly Podgoretsky (2002-11-22 23:07) [11]Булева система :-) по модулю буль
← →
Vlad1 (2002-11-23 18:39) [12]>AndrewVolkov
var
b: byte;
s: string;
begin
s:=IntToHex(b,2);
//получил байт в шестнадцатиричном виде (две цифры)
//каждая из 2-х цифр - полбайта
//перевести шестнадцатиричную цифру в тетраду несложно
// типа $a == 1010b; $5 == 0101b; $f == 1111b
end;
← →
Ihor Osov'yak (2002-11-23 19:14) [13]2 AndrewVolkov (22.11.02 20:40),Vlad1 © (23.11.02 18:39)
ну блин, робяты, вы даете ...
function ByteToBitStr(aB:byte):string;
var mask:byte;
i:integer;
begin
mask:=$80;
result:="00000000";
for i:=1 to 8 do begin
if aB and mask > 0 then result[i] := "1";
mask = mask shr 2;
end;
end;
2 AndrewVolkov (22.11.02 21:26) - В разделе потрепатся Зотов две ветки дал, типа начинающим .... Там кажись об это в том числе обговаривается (как понять) ...
← →
AndrewVolkov (2002-11-23 20:42) [14]to Ihor Osov"yak
а поточнее, где эти ветки, не подскажешь
Я полазил не нашел...
← →
Vlad1 (2002-11-23 21:53) [15]
> 2 AndrewVolkov (22.11.02 20:40),Vlad1 © (23.11.02 18:39)
> ну блин, робяты, вы даете
Я просто хотел дать альтернативу к варианту TTCustomDelphiMaster.
function ByteToBitStr(b:byte):string;
var s:string;
const ar1:array[0..15]=("0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111");
begin
s:=inttohex(b,2);
result:=ar1[strtoint("$"+s[1])]+ar1[strtoint("$"+s[2])];
end;
← →
Ihor Osov'yak (2002-11-23 22:35) [16]2 AndrewVolkov (23.11.02 20:42)
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1035836141&n=3
Первый этап сам поищи ...
← →
AndrewVolkov (2002-11-23 23:41) [17]Большое всем спасибо. Пойду читать.
← →
AndrewVolkov (2002-11-24 01:35) [18]to Ihor Osov"yak
mask := mask shr 1;
:-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c