Писал ранее, меня не совсем верно поняли, теперь напишу конкретнее Нужен кусочек кода, который будет делать следующее Итак, у нас есть десятичное число, два разряда, скажем: Код (C++): int number = 57; Мы его разбиваем на десятки и единицы: Код (C++): int firstDecimalDigit = number / 10; int secondDecimalDigit = number % 10; Теперь нам надо превратить firstDecimalDigit и secondDecimalDigit в бинарное число, причем обязательно с 4 разрядами, то есть после какого-то кода мы должны получить firstBinaryDigit = 0b0101 (это наша 5) secondBinaryDigit = 0b0111 (это наша 7) И именно так, никак иначе, то есть ноль в 4 разряде не должен урезаться А после этого эти два числа надо объединить, не сложить, не умножить, а объединить. Например binaryResult = 0b01010111 (как-бы 0b(зашифрованная 5)(зашифрованная 7) То есть мы должны получить 8-и битное число где первые 4 разряда - secondBinaryDigit, а последние 4 - firstBinaryDigit (не наоборот) Все это я буду слать в 74НС595, а посему он не поймет, если где-то какой-то нолик урежется Буду очень благодарен помощи
Если кому-то поможет лучше понять ситуацию, то я шлю это число на 74HC595, а от него первые 4 бита уходят на один CD4511 (он дешифрует разряд единиц), а вторые 4 бита на второй CD4511 (а он - разряд десятков)
Так нужно сделать байт из числа по этому алгоритму? Интересная задачка, надо подумать пару минут. ) Нате вам: Код (C++): dozens = number / 10; units = number % 10; result = (dozens << 4) + units; Этот байт можно закидывать в регистр.
Так все же очевидно. Десятки это число деленное на 10. Единицы - остаток от деления на 10. Далее десятки сдвигаем на четыре разряда влево и складываем с единицами и получаем то что вы хотели.
в некоторых си есть двоично - десятичное представление - то что у тс называется " бинарное число, причем обязательно с 4 разрядами", с переводом туда- сюда, может и в ide ардуины есть? Так по идее должно быть.