gpt4 book ai didi

C中十进制数和二进制数的转换

转载 作者:行者123 更新时间:2023-11-30 21:10:38 25 4
gpt4 key购买 nike

我想从十进制数中获取位对(例如 75 -> 0b01001011)并将它们保存在单独的变量中。因此,对于 75,我期望得到四个具有 1、0、2、3 值的变量。我正在寻找最佳性能解决方案。

这是我的测试:

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 倍:

uint16_t k;
unsigned char a,b,c,d;
k = 75;
a = k & 0b11;
b = (k & 0b1100) >> 2 ;
c = (k & 0b110000) >> 4;
d = (k & 0b11000000) >> 6;

关于C中十进制数和二进制数的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com