【发布时间】:2020-12-07 08:54:06
【问题描述】:
我整个上午都在努力寻找答案,如果它是重复的,很高兴关闭这个问题。我想获得一个有 8 位数字的十六进制数字的前 2 位数字。
我了解>> 将 x 位向右移动。所以0b10 >> 1 会以0b01 结束
最后 6 位有效。 最后 2 个十六进制数字:
0x000000FF >> 0 // 255
0b00000000000000000000000011111111 >> 0 == 0b00000000000000000000000011111111 // == 255
右起第 3 和第 4 个十六进制数字:
0x0000ff00 >> 8 // 255
0b00000000000000001111111100000000 >> 8 == 0b00000000000000000000000011111111 // == 255
右起第五个和第六个十六进制:
0x00ff0000 >> 16
0b00000000111111110000000000000000 >> 16 == 0b00000000000000000000000011111111 // == 255
尝试从右侧获取第 7 个和第 8 个十六进制数,或者从左侧开始的前 2 个应该将所有位向右移动 24 位:
0xff000000 >> 24
0b11111111000000000000000000000000 >> 24 => Should be 255, but it is -1
我怎样才能让0b11111111000000000000000000000000变成255?
【问题讨论】:
-
大声笑,喜欢这个用户名。 90年代参考! :-)
标签: javascript binary hex shift