在制作用于工作和隔离位和字节的二进制掩码时,从Binary转换为Hex的最快方法是什么?

Qua*_*ker 3 c binary bitmask

假设我有以下二进制字符串:

110110010110
Run Code Online (Sandbox Code Playgroud)

我只需要第4和第5位,我们学会了使用这样的面具

000000111000
Run Code Online (Sandbox Code Playgroud)

因此,通过二进制&操作,我将得到我想要的位,而我剩下要做的就是将它们移到右边.

由于C不能使用普通二进制数,因此我们被告知最简单的方法是将二进制掩码字符串转换为十六进制数.我的讲师使用超快速方法将二进制字符串转换为十六进制数字.

创建这些面具的最简单,最正确的方法是什么?

qap*_*hla 7

每组四位对应一个十六进制"数字".学习那些,然后开始从右到左转换四个块.(如果要转换的位串不是四位的倍数,那么只需在左端添加零,直到它为最后一次转换为止.)

0000:0x0
0001:0x1
0010:0x2
0011:0x3
0100:0x4
0101:0x5
0110:0x6
0111:0x7
1000:0x8
1001:0x9
1010:0xA
1011:0xB
1100:0xC
1101:0xD
1110:0xE
1111:0xF

  • 是的,差不多.由于16是2的幂,因此与十进制不同,存在这种直接对应关系. (3认同)
  • 你甚至不需要"心连心"地知道它; 你只需要知道如何读取四位二进制数.例如:`b0000 0011 1000` - >`0x038`. (2认同)