PDA

Просмотр полной версии : Перевод из двоичной системы счисления


r0
04.10.2006, 20:33
Интересует:
1) Что такое "тетрады". Вики не дала ответа.
2)Перевод из двоичной системы счисления в шестнадцетиричную, точнее алгоритм
3) Пример пункта №2 на C++/Pascal

CyberPunk
04.10.2006, 20:44
Тетрада - 4 бита

r0
04.10.2006, 20:45
как глупо получается... хотя может я ошибаюсь?
1)
16-битное двоичное число рассматривается как строка из четырех тетрад и обрабатывается потетрадно слева направо, начиная со старшей тетрады байта
Т.е полагая что 16 бит = 4*4 тетрады, то 1 тетрада = 4 бита?

2) Уже нашел в википедии не "тетрады" а квартеты, но 4 == 4, т.е все правильно... =)

Остается только пункт №3, который я не нашел. =) Извините за "сам спросил - сам ответил" .

CyberPunk
04.10.2006, 20:48
bin2hex
http://www.delphipraxis.net/topic71149,next.html

nc.STRIEM
04.10.2006, 21:25
ну вобшем вот немног накатал:



#include <iostream.h>
#include <stdlib.h>
void main()
{
int j;
int mas[16];
for(j=0;j<16;j++) //вводим 16 чисел 0 и 1
cin>>mas[j];

int i[4]; ///// считаем
i[0]= mas[3]+ mas[2]*2 + mas[1]*4 + mas[0]*8;
i[1]= mas[7]+ mas[6]*2 + mas[5]*4 + mas[4]*8;
i[2]= mas[11]+ mas[10]*2 + mas[9]*4 + mas[8]*8;
i[3]= mas[15]+ mas[14]*2 + mas[13]*4 + mas[12]*8 ;

char t[]={'0','1','2','3','4','5','6','7','8','9','A','B', 'C','D','E','F'};
char c[4];


for(j=0;j<4;j++) //переделуем в символы
c[j]=t[i[j]] ;

for(j=0;j<4;j++)// выводим
cout<<c[j] ;

system("pause");

}

Работает в консольном режиме визуалку не делал
ввоодиш 16 цифр 0 и 1 которые переводяться в 16ричную систему (выводит 4 символа)
прмер придельно упрощен! есле че стучи в асю!

fen
11.10.2006, 14:50
байт =8 bit
полубайт =4 bit .. его также называют и тетрадой, и квартетом..