Я хочу получить пары бит из десятичного числа (например, 75 -> 0b01001011) и сохранить их в отдельных переменных. Поэтому для 75 я ожидаю получить четыре переменные с 1,0,2,3 значениями. Я ищу лучшее решение для повышения производительности.преобразование между десятичным числом и двоичным числом в C
Вот мой тест:
uint16_t k,kk,kkk,kkkk;
unsigned char a,b,c,d;
k=kk=kkk=kkkk = 75;
a = k & ~(0b11111100);
b = (kk & ~(0b11110011)) >> 2 ;
c = (kkk & ~(0b11001111)) >> 4;
d = (kkkk & ~(0b00111111)) >> 6;
Можете ли вы найти лучше и быстрее решение? Я имею в виду, что недостатком этого решения является то, что я должен создать копии исходной переменной, потому что она изменяется каждый раз, когда я устанавливаю одну из переменных a, b, c, d.
Там нет такого понятия, как "десятичный тип номера". Представление не является частью понятия «число». –
Этот вопрос кажется слишком сложным и запутанным. Похоже, вы просто хотите создать базовую цифру числа. Просто продолжайте делить на 4 и вычислите остаток. –
Связанный: http://en.wikipedia.org/wiki/Numeral_system – alk