Форум: "Потрепаться";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];
Вниз101010101010101010 Найти похожие ветки
← →
Карлсон (2002-08-25 17:44) [0]Как перевести букву в двоичный код?
где можно достать таблицу перевода символов в двоичные коды?
← →
Polevi (2002-08-25 18:31) [1]function Z(c: char): string;
var
i:integer;
begin
for i:=7 downto 0 do
Result:=Result+IntToStr(Integer(((Byte(c) shr i) and 1)));
end;
← →
drpass (2002-08-25 18:41) [2]Никакой таблицы не существует - это ведь просто, как 2+2=4
Каждая буква представлена в компьютере однобайтовым числом - два разряда в шестнадцатеричной системе.
Соответствие двоичных кодов шестнадцатеричным ты знаешь? Если нет, то напомню:
0=0000
1=0001
2=0010
3=0011
4=0100
...
15=1111
Допустим, так:
i:=byte("a");
case i mod 16 of
0:s1:="0000";
...
15:s1:="1111";
end;
case i div 16 of
0:s2:="0000";
...
15:s2:="1111";
end;
s:=s2+s1;//это представление буквы "а" в двоичном коде
Этот алгоритм не единственный, но он, мне кажется, понятнее.
← →
Юрий Зотов (2002-08-25 18:47) [3]Строковое представление шестнадцатиричного кода буквы K:
IntToHex(Ord("K"), 0)
Для двоичного нужно написать свою функцию. Очень простую. Например, такую (далеко не лучшую, оптимизируйте сами):
function HexToBin(S: string): string;
const
H: array [0..15] of char =
("0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "A", "B", "C", "D", "E", "F");
B: array[0..15] of string[4] =
("0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111");
var
i, j: integer;
begin
for i := 1 to Length(S) do
for j := 0 to 15 do
if UpCase(S[i]) = H[j] then
begin
Result := Result + B[j];
Break
end
end;
> где можно достать таблицу перевода символов в двоичные коды?
Таблица ASCII-кодов. Есть в очень многих книгах, обычно в приложении.
← →
Карлсон (2002-08-25 21:19) [4]Всем большое спасибо, но я немного не то имел в виду :)))
Мне нужно было представить букву, а не цифру в двоичном коде.
покопался в нете и нашел кодовые страницы в асцы формате, а затем десятичное значение буквы перевел в бинарный вид %)
вот и все дела.
просто хотел посмотреть, как будет слово одно выглядеть в единицах и ноликах.
← →
Ihor Osov'yak (2002-08-25 21:27) [5]Народ!! Или я чего замного выпил, или Карлсон не того..
Три раза перечитал, не понял. (зы, msdn на незнакомом буржуйском
за вторым разом понимаю)... Иль может действительно многовато выпил ...
← →
Карлсон (2002-08-25 22:05) [6]советую просто забить.
сейчас у многих запой по графику.
я немного ошибся, мтзги от прогирования уже совсем на бекрень :(
← →
Юрий Зотов (2002-08-25 22:05) [7]Скорее, мало. Нужно добавить - и придет озарение!
← →
Anatoly Podgoretsky (2002-08-25 22:20) [8]Без поллитры не разберешься
← →
drpass (2002-08-25 22:31) [9]Только не надо про спиртное, а то меня сейчас стошнит на мышиный коврик...
← →
Карлсон (2002-08-25 23:59) [10]а я между прочим спиртное вообще не употребляю....
а в "Фанте" можно чулки старые нейлоновые утилизировать...
← →
VEG (2002-08-26 00:11) [11]Хе... Это в школе в начальном курсе проходят. Вроде 4-тый урок:-)
← →
NetBreaker666 (2002-08-26 01:15) [12]2drpass © You ain"t worth no shit, son...))))))
2All:
Самый быстрый способ:
type ts8=array[1..8] of char;
const bytetobitarr:array [0..255] of ts8 =("00000000","00000001",
"00000010","00000011"...)
function ByteToBit(b:Byte):String;
Begin
Result:=bytetobitarr[b]; //Здесь на уровне асма происходит
//что-то вроде:
//movz ax,b
//shl ax,3 - бустрее всякого mul"a, div"a Ит.д.
//
End;
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c