Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
8-73771
2UT
2002-05-24 18:30
2002.09.23
Помогите кто может!!!


1-73615
@Ujin
2002-09-12 11:52
2002.09.23
C: TMetafileCanvas - как бы его грамотно масштабировать...


1-73583
maxim2
2002-09-12 07:44
2002.09.23
Подскажите функции проверки типов


14-73842
AL2002
2002-08-27 20:01
2002.09.23
Ни у кого нет песни Преснякова


1-73660
Cr@sh
2002-09-11 12:53
2002.09.23
Запуск 32 разрядного приложения из Доса





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