Russian Qt Forum

Программирование => С/C++ => Тема начата: dread от Апрель 27, 2007, 06:30



Название: int to char
Отправлено: dread от Апрель 27, 2007, 06:30
Вопрос: есть число типа инт (цлое) размером до 65000
как это число представить в виде двух байт (символов) ?

целочисленным делением?


Название: int to char
Отправлено: sandy от Апрель 27, 2007, 08:53
int - это 4 байта
используй short


Название: int to char
Отправлено: Вудруф от Апрель 27, 2007, 10:46
Код:

unsigned int a; //или unsigned short int, не суть важно
char first = (a / 256)%256;
char second = a % 256;

Можно и по-другому: непосредственно читать память из int'а в char'ы. Но тогда будет ролять порядок байт в слове...

P.S. int - не всегда 4 байта, он может быть и 2-х байтовым.

добавлено спустя 31 минуту:

 Ну или любителям быстрых вычислений:
Код:

unsigned int a;
char first = a >> 8;
char second = a;


Название: int to char
Отправлено: sandy от Апрель 27, 2007, 12:29
Цитата: "Вудруф"

P.S. int - не всегда 4 байта, он может быть и 2-х байтовым.


Согласен. Зависит от реализации. Но short уж точно 2 байта


Название: int to char
Отправлено: dread от Апрель 28, 2007, 03:17
спасиб )