Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Кодировка данных, в 32-х разрядных словах.


Автор: BVSH 20.10.2004, 17:17
Есть слово равное 4 байтам (0-й, 1-й, 2-й, 3-й). Старшинство битов идет от 0 к 3. 0-й байт как обычно определяет метку слова по которой его можно определить. дальше идут какие то данные. Вопрос закл. в следующем. Биты 28, 27, 26, 25, 24 определяют время 28-й бит-16 часов, 27-8 часов, ... , 24-1 час, биты 23, 22, 21, 20, 19, 18 определяют тоже время но в минутах, т.е. 23 бит-32 мин, 22-16 мин. и т.д 18-1 мин. Таким образом получив значения битов от 28 по 18 определяется время. Пример: 28 ст.-1 0 0 0 1-мл. 16*1+8*0+4*0+2*0+1*1=17 часов, и минуты ст.р. 23-1 0 0 1 0 0-18 мл. разряд, имеем 32*1+0*16+0*8+1*4+0*2+0*1=36 минут. Имея уже сформированные слова, методом нехитрых a&(1<<n++) операций можно получить вполне понятное время, а если наоборот имея время в десятичном коде (напр. 22:32), преобразовать его в двоично десятичный. Кто нибудь может, что нибудь подсказать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)