如何确定十六进制常量的位信息(含最高有效位)?
十六进制常量的位信息判断方法(无需转二进制)
核心前提:记住十六进制与4位二进制的固定对应
不用查任何资料,先把这个对应关系记死——十六进制的每一位,对应固定的4位二进制:
- 0=0000,1=0001,2=0010,3=0011
- 4=0100,5=0101,6=0110,7=0111
- 8=1000,9=1001,A=1010,B=1011
- C=1100,D=1101,E=1110,F=1111
关键结论:十六进制的8到F,对应的4位二进制最高位都是1;0到7的最高位是0。
快速写出「仅最高有效位为1」的十六进制数
根本不用逐个试,按数据类型直接推导:
- 先明确你用的整数类型的二进制位数:
- byte:8位 → 对应2个十六进制位
- short:16位 → 对应4个十六进制位
- int:32位 → 对应8个十六进制位
- long:64位 → 对应16个十六进制位
- 直接构造:最左边的十六进制位写8,剩下的所有位全写0。比如:
- byte类型的目标数:
0x80 - short类型:
0x8000 - int类型:
0x80000000 - long类型:
0x8000000000000000
- byte类型的目标数:
判断任意十六进制数的最高有效位是否为1
看这个数最左边的第一个非0十六进制位:
- 如果这个位是8-F(对应4位二进制最高位为1),那整个数的最高有效位就是1;
- 如果是0-7(对应4位二进制最高位为0),那最高有效位就是0。
举几个例子: 0x1A3F:最左边非0位是1(二进制0001),最高位为0 → 不符合;0x8100:最左边非0位是8(二进制1000),最高位为1 → 符合;0xFF:最左边非0位是F(二进制1111),最高位为1 → 符合。
总结
完全不需要逐个尝试十六进制常量,只要记住十六进制与4位二进制的对应关系,结合数据类型的位数,就能快速构造或判断最高有效位为1的数,全程不用转成完整二进制,也不用查任何资料。
内容的提问来源于stack exchange,提问作者Нормальный дневник
相关产品推荐
相关产品推荐

