Это не обычный вопрос «двоичный код для bcd», на самом деле я не совсем уверен, что назвать то, что я пытаюсь сделать!Конвертировать одноразовое кодирование в обычный двоичный файл
Существует один байт во встроенном устройстве, которое хранит цифры от 1 до 7 (по дням недели) в следующем формате:
00000001 = 1
00000010 = 2
00000100 = 3
00001000 = 4
00010000 = 5
00100000 = 6
01000000 = 7
Я хочу прочитать этот байт и преобразовать его содержимое (От 1 до 7) в BCD, но я не уверен, как это сделать.
Я знаю, что я мог бы просто перебором его с серией если заявления:
if(byte == B00000001)
{
answer = 1;
}
else
if(byte == B00000010)
{
answer = 2;
}
и так далее, но я думаю, что может быть лучше. Эти данные хранятся в одном регистре на часах реального времени. Я получаю этот байт, выполняя чтение I2C, и я прочитал его в байте в своей программе. Техническое описание для этих часов реального времени указывает, что этот конкретный регистр отформатирован, как я изложил выше.
Вы пробовали что-нибудь? –
Я знаю, что я мог бы просто перетащить его с помощью следующих утверждений if (byte == 00000001) answer = 1; if (byte == 00000010) answer = 2; и т. д., но я думаю, что может быть лучший способ. Эти данные хранятся в одном регистре на часах реального времени – user3211203
Подсказка: у вас есть восходящие мощности двух –