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

Ваш аккаунт

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

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

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

Вопрос про типы переменных

4.4K
31 января 2008 года
erzik
47 / / 08.04.2006
Здраствуйте.
Можете объяснить, что творит машина:
int a=0;
char t[] = {0x80,0x90,0xA0,0xB0,0xC0}
a = t[0]; // тут a=0x00 00 00 80
a = t[2]; // а тут почему-то a=0xFF FF FF C0

когда и почему в начале пояляются FF... ?
(если надо, могу приложить код, откуда эта ошибка появилась, т.к. тут просто похожий упрощенный пример)
505
31 января 2008 года
vAC
343 / / 28.02.2006
Что-то вы напутали...
 
Код:
int(char(0x80)) = FF FF FF 80
int(char(0xA0)) = FF FF FF A0

А получается это из того, что char(0x80) = -128, char(0xA0) = -96, ну а когда присваиваете к int, то появляется добавочный код
255
31 января 2008 года
Dart Bobr
1.4K / / 09.04.2004
код в студию!!
4.4K
31 января 2008 года
erzik
47 / / 08.04.2006
Цитата: vAC
Что-то вы напутали...
 
Код:
int(char(0x80)) = FF FF FF 80
int(char(0xA0)) = FF FF FF A0

А получается это из того, что char(0x80) = -128, char(0xA0) = -96, ну а когда присваиваете к int, то появляется добавочный код



похоже напутал, т.к. у самого на входе было 0x00, 0x00, 0x02, 0xd2 .
Спасибо, что объяснили. Я думал, что char будет преобразоввываться, как unsigned.

Тему можно закрыть.

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