(функция cod() упаковывает в байт два числа
функция binary() выводит на экран двоичное представление байта-параметра):
unsigned char cod (int a, int b);
void binary (unsigned char ch);
int main()
{ int k, m, n ;
cout << "m= ? n=? : ";
cin >> m >> n;
k = cod (m, n); //упаковка значений в байт
cout << "cod= " << hex <<k <<endl; //вывод кода
cout << "simvol= " << char(k) << endl; //вывод символа
cout << dec << endl;
binary(k) ; //вывод на экран двоичного представления байта
_getch();
return 0;
}
unsigned char cod (int a, int b)
{union {
unsigned char z;
struct {unsigned int x:4;
unsigned int y:4;
} hh;
} un;
un.hh.x=a%16 ; //получение остатков от чисел-аргументов
un.hh.y=b%16 ;
return un.z ; //возвращает символ с полученным кодом 44
}
void binary (unsigned char ch) //вывод на экран двоичного представления байта
{ union { //определение локального объединяющего типа
unsigned char ss;
struct {
unsigned a0:1; //каждый бит получает название
unsigned a1:1;
unsigned a2:1;
unsigned a3:1;
unsigned a4:1;
unsigned a5:1;
unsigned a6:1;
unsigned a7:1;
} byte;
} cod; //определение локальный переменной-объединения
cod.ss=ch; //занесение в объединение значения аргумента функции
cout << "nomera bitov: 7 6 5 4 3 2 1 0\n";
cout <<"znachenie: ";
cout << " " << cod.byte.a7 << " " << cod.byte.a6 ; //так как все биты
cout << " " << cod.byte.a5 << " " << cod.byte.a4 ; //имеют названия
cout << " " << cod.byte.a3 << " " << cod.byte.a2 ;
cout << " " << cod.byte.a1 << " " << cod.byte.a0 ;
cout <<endl;
}
Открыв наук зелёный том,
Я долго думал, а потом
Закрыл его и кинул в реку.
Науки вредны человеку,
Науки тянут нас в беду.
Возьмемся лучше за еду!
Даниил Хармс
А вот теперь:
[1] * На оценку выше 5