tc9*_*c90 1 c++ binary endianness
我知道在这个网站上有类似的问题,但是,我似乎无法找到真正帮助我解决问题的东西.
至今:
我有1字节(8位),可以是1和0的任意组合.
例如:11000010是我的数据字节.(小端)
我需要做的是确定最高有效位(MSB),在这种情况下是11,是00,01,10,11还是从那里做其他事情.
到目前为止,我已经得到了将字节输出为11000010(存储在字符串中)并尝试从中提取11的程序.(如果我可以解决这个问题,那么创建一个switch case或if语句来检查我自己的内容是否足够简单).
**我对C++的表现不是很好,这就是我要求帮助的原因.
任何帮助是极大的赞赏.
您不需要将其存储为字符串,只需使用按位运算符:
unsigned char myByte = 0xc2; // 11000010
char twoMost = (myByte & 0xff) >> 6; // 00000011
在0xff"选择"(掩模)仅前8位,因此,如果该char类型实际上是大于8位,则一切被丢弃.
通过向右移动6位,您只能保留两个最重要的位.然后,您可以申请switch:
switch(twoMost) {
    case 0: // 00
        doSomething();
        break;
    case 1: // 01
        doSomething();
        break;
    case 2: // 10
        doSomething();
        break;
    case 3: // 11
        doSomething();
        break;
    default:
        // This is not possible, but better output an error message
}
| 归档时间: | 
 | 
| 查看次数: | 18200 次 | 
| 最近记录: |