Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно прочитать 16-бит из char? Как разбить один чар на два? 
V
    Опции темы
Fazil6
Дата 23.5.2007, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



archimed7592, дело в том, что в стандарте 1 это строго говоря не 1 байт, а одна единица и в этих единицах меряются остальные типы
PM MAIL   Вверх
Xenon
Дата 23.5.2007, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Fazil6, Я так понимаю, что все в char`ах исчисляется и один char - и есть та самая 1? Это я чтобы удостовериться smile



--------------------
user posted image  
PM MAIL   Вверх
archimed7592
Дата 23.5.2007, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Fazil6, блин, двумя предложениямии раньше
Цитата(IS-5.3.3)
The sizeof operator yields the number of bytes in the object representation of its operand.


Добавлено через 3 минуты и 15 секунд
хотя...
Цитата(IS-1.7 The C+ + memory model)
The fundamental storage unit in the C + + memory model is the byte. A byte is at least large enough to contain any member of the basic execution character set and is composed of a contiguous sequence of bits, the number of which is implementation-defined.



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Daevaorn
Дата 23.5.2007, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(archimed7592 @  24.5.2007,  00:33 Найти цитируемый пост)
угумсЦитата(IS-5.3.3)sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; theresult of sizeof applied to any other fundamental type (3.9.1) is implementation-defined.Цитата(bsa @  23.5.2007,  21:59 )Все сказанное мной справедливо для систем, разрядность которых 32 и 64 бита. Добавлено через 41 секундуDaevaorn, ну блин, от тя не ожидал

smile
Цитата(IS 3.9.1.1)

Objects declared as characters (char) shall be large enough to store any member of the implementation’s
basic character set
.

Цитата(IS 5.4.3.1)

The sizeof operator yields the number of bytes in the object representation of its operand. The operand
is either an expression, which is not evaluated, or a parenthesized type-id. The sizeof operator shall not
be applied to an expression that has function or incomplete type, or to an enumeration type before all its
enumerators have been declared, or to the parenthesized name of such types, or to an lvalue that designates
a bit-field. sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; the
result of sizeof applied to any other fundamental type (3.9.1) is implementation-defined. [Note: in particular,
sizeof(bool) and sizeof(wchar_t) are implementation-defined.69) ] [Note: See 1.7 for
the definition of byte
 and 3.9 for the definition of object representation. ]

Цитата(IS 1.7.1)

The fundamental storage unit in the C + + memory model is the byte. A byte is at least large enough to contain
any member of the basic execution character set and is composed of a contiguous sequence of bits, the
number of which is implementation-defined. 
The least significant bit is called the low-order bit; the most
significant bit is called the high-order bit. The memory available to a C + + program consists of one or more
sequences of contiguous bytes. Every byte has a unique address.

PM MAIL WWW   Вверх
archimed7592
Дата 23.5.2007, 23:44 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



ставлю "+" в репу тому, кто назовёт хоть одну реально существующую систему\платформу\компилятор, где byte не 8-ми битный smile

Добавлено @ 23:51
Daevaorn, что у тебя за стандарт такой, где есть пункт 1.7.1? smile 

насчёт же реальных систем... вот, советую: 20 issues of porting C++ code on the 64-bit platform
оно же в переводе RSDN

вот к примеру оттуда я узнал, что на windows-64 sizeof(long)!=sizeof(void *), bsa, как видишь, не для всех справедливо smile

Это сообщение отредактировал(а) archimed7592 - 23.5.2007, 23:51


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Daevaorn
Дата 23.5.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(archimed7592 @  24.5.2007,  00:44 Найти цитируемый пост)
что у тебя за стандарт такой, где есть пункт 1.7.1? 

Цитата

ISO/IEC
14882
Second edition
2003-10-15

Вроде самый последний на сегоднешний момент.
PM MAIL WWW   Вверх
archimed7592
Дата 23.5.2007, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Daevaorn @  23.5.2007,  23:55 Найти цитируемый пост)
Вроде самый последний на сегоднешний момент. 
ну ещё есть драфт... но в последнем драфте уж больно много новшевств, что порой начинаешь сверяться с Second Edition smile

ммм... всегда думал, что циферки слева от текста - это так, для красоты smile а это подпункты, видимо?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Daevaorn
Дата 24.5.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(archimed7592 @  24.5.2007,  00:59 Найти цитируемый пост)
ммм... всегда думал, что циферки слева от текста - это так, для красоты  а это подпункты, видимо?

это номер стиха видимоsmile каждый абзац нумеруется.
PM MAIL WWW   Вверх
Fazil6
Дата 24.5.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Xenon @  23.5.2007,  23:39 Найти цитируемый пост)
Fazil6, Я так понимаю, что все в char`ах исчисляется и один char - и есть та самая 1? Это я чтобы удостовериться

да. Страуструп п.4.6
PM MAIL   Вверх
Xenon
Дата 24.5.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Fazil6, Вот я оттуда и вспомнил smile


--------------------
user posted image  
PM MAIL   Вверх
archimed7592
Дата 24.5.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



ок, а есть какой-нибудь стандартный способ узнать сколько бит содержится в "байте"? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Daevaorn
Дата 24.5.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



можно попробовать проанализировать результат нужного numeric_limits
PM MAIL WWW   Вверх
archimed7592
Дата 24.5.2007, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



ммм... написал уже темплейт, считающий log2 в compile-time, когда до меня дошло, что в numeric_limits min и max - это ф-ции smile ну и там же, рядом нашел digits... анализовать ничо и не надо smile
Код
std::numeric_limits< unsigned char >::digits


тогда ещё вот проблемака: как узнать endianity (big-endian, low-endian)? compile-time, разумеется...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Daevaorn
Дата 24.5.2007, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(archimed7592 @  24.5.2007,  01:50 Найти цитируемый пост)
low-endian)

а такой есть? может little?smile
PM MAIL WWW   Вверх
nickless
Дата 24.5.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Цитата(archimed7592 @  23.5.2007,  23:50 Найти цитируемый пост)
как узнать endianity (big-endian, low-endian)? compile-time, разумеется

endianess smile 
Можно написать проверку в мейкфайле и поставить соответствующий дефайн, примерно это делается например в automake & Co


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1412 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.