Здравствуйте, GvinPin, Вы писали:
GP>Добрый день!
GP>Есть 2 int их значения от 0 до 8, как их поместить в char? чтоб каждое занимало по 4 бита?
А проще всего так:
int c = a * 0x10 + b;
Здравствуйте, kpcb, Вы писали:
K>А проще всего так:
K>K>int c = a * 0x10 + b;
K>
Главное, это отражает суть.
1000*a+ 100*b+ 10*c+ 1*d // сборка десятичного 4-разрядного числа
0x1000*a+0x100*b+0x10*c+0x1*d // сборка двоичнодесятичного (или шестнадцатиричного) 4-разрядного числа
Однако, данная формула реализует принцип GIGO: если на вход подать цифры вне рабочего диапазона (0-9 или 0-15 соответственно), получится ерунда.
Впрочем, ерунда получится и в упомянутых выше по ветке формулах — только вид у этой ерунды будет другой.