@lrusifikator
Pam parapam

Как разбить short int (от 0 до 65535) на два числа char (от нуля до 255)?

По идее максимальное число short int равно 2^16, то есть его можно разбить на два char (2^8), но я так и не понял как это сделать. Хэээлп
  • Вопрос задан
  • 552 просмотра
Решения вопроса 1
0xD34F
@0xD34F
Битовые операции. Как-то так:
short int x = 0x6543;
char a = x & 0xff;
char b = (x & 0xff00) >> 8;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Можно через union:
typedef union {
 short int x;
 char c[2];
} si_u;
...
si_u var;
var.x = 0x6543;
printf("char0 = %c\tchar1 = %c\n", "var.c[0], var.c[1]);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы