我觉得我方式过度思考这个并且必须有一个更简单的方法。
假设我有一个十六进制格式的字符串,例如:
“0x1fffff51”
(二进制:0001 1111 1111 1111 1111 1111 0101 0001)
现在,根据我的一些信息,我需要提取前x个二进制位,然后是下一个y二进制位,然后是剩余的32-x-y二进制位。
假设x = 5,y = 7
所以我想要:
x = 10001 = 17
y = 1111010 = 122
z = 0001 1111 1111 1111 1111 = 131071
我想要接近它的方式是:
我几乎100%正向位移对十进制数有效,所以我认为这不会有问题。