Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

разбиение слова на байты

5.7K
15 ноября 2007 года
N-John
52 / / 05.07.2006
пишу сейчас эмулятор и встретился с такой проблемой. Нужно разделит слово на два байта.

допустим есть переменная типа short
 
Код:
short var = 0xF3A5;


нужно ее разделит на 2 разные переменные 0xF3 и 0xA5.

а потом после некоторых модификаций снова слить их воедино

Может кто-то знает как это делается?

И существует ли в C++ тип byte? у меня Visual C++ 2005 ругается на него...
245
15 ноября 2007 года
~ArchimeD~
1.4K / / 24.07.2006
оно?

1)
 
Код:
char a, b;
short var = 0xF3A5;
b = var & 0xFF;
a = ( var >> 8 ) & 0xFF;

var = ( a << 8 ) + b;


2)
 
Код:
union
{
     short var;
     char a[2];
} temp;
temp.var = 0xF3A5


в temp.a[0] и в temp.a[1] как раз будут половинки слова
3
15 ноября 2007 года
Green
4.8K / / 20.01.2000
Продолжаем изгаляться:
 
Код:
char b0 = reinterpret_cast<char*>(&var)[0];
char b1 = reinterpret_cast<char*>(&var)[1];

Кстати, я бы не был абсолютно уверен, что short - это два байта ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог