Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2008, 15:59   #1
WinApi
Пользователь
 
Регистрация: 07.11.2008
Сообщений: 13
По умолчанию извлечение битов из байтов...

Вижуал студио
есть переменная

byte BootRec[512]

известны значения 2х байт, к примеру 342го и 343го

BootRec[342]
BootRec1[343]

в этих байтах хранится Время последней модификации файла - слово в битовом формате hhhhhmmmmmmsssss

Вопрос: как извлечь значения битов из этих байт для определения времени модификации файла?
WinApi вне форума Ответить с цитированием
Старый 09.11.2008, 20:28   #2
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию

сори, дверью ошибся

Последний раз редактировалось Teksa; 09.11.2008 в 20:31.
Teksa вне форума Ответить с цитированием
Старый 10.11.2008, 02:10   #3
Sergey2
Форумчанин
 
Регистрация: 08.01.2008
Сообщений: 233
По умолчанию

(b342 & 0xF8) >> 3 - hhhhh
(b342 & 0x7) & ((b343 & 0xE0) <<3) - mmmmmm
b343 & 0x1F - sssss

вроде так
Sergey2 вне форума Ответить с цитированием
Старый 10.11.2008, 05:56   #4
Vladko
Пользователь
 
Регистрация: 13.10.2008
Сообщений: 17
По умолчанию

Если формат такой
BootRec[343]:BootRec[342]
hhhhhmmm:mmmsssss

,то

Секунды
Seconds = BootRec[342] & 0x1F;

Минуты
Minutes = ((BootRec[343] << 3) & 0x38) | ((BootRec[342] >> 5) & 0x07);

Часы
Hours = ((BootRec[343] >> 3) & 0x0F);

Короче, просто работаешь с битными операторами

а если формат
BootRec[342]:BootRec[343]
hhhhhmmm:mmmsssss
то просто поменяй местами индексы в вырожениях, 342 на 343, и 343 на 342

Последний раз редактировалось Vladko; 10.11.2008 в 06:14.
Vladko вне форума Ответить с цитированием
Старый 10.11.2008, 15:14   #5
WinApi
Пользователь
 
Регистрация: 07.11.2008
Сообщений: 13
По умолчанию

Спсбо, все получилось.
WinApi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FileStream. Как узнать сколько байтов в Read и Write надо написать? Манжосов Денис :) Помощь студентам 2 24.10.2008 08:29
Извлечение данных из TCppWebBrowser НикСерг Общие вопросы C/C++ 1 13.07.2008 17:16
Безопасное извлечение SunKnight Win Api 1 12.01.2008 02:06
Перестановка битов. RegentM Общие вопросы Delphi 3 05.11.2007 17:23
Строка символов в виде байтов Blondinka Общие вопросы Delphi 17 14.09.2007 19:06