我正在从这里BitMaps
读取Nth Bit到BitMap Conversion我想了解他们如何映射第n位(整数范围从0到9)到位图(0和1),下面是从那里复制的代码:
0________10________20________30________40________50________60__64
1234567890123456789012345678901234567890123456789012345678901234 n-th bit
0100001000010000000000000001000100000010110000000100100000000100 bit map
此外,他们正在转换'82x是二进制'1000 0010',但是当我计算出82的二进制数为1010010时。
任何帮助将不胜感激。
谢谢, Arpit
答案 0 :(得分:1)
82x是十六进制值。 二进制值82 hex是1000 0010
答案 1 :(得分:1)
好的,暂时忽略第n位数据。假设该示例只有位图。
0100001000010000000000000001000100000010110000000100100000000100
从位图中可以看到第一个字段不在消息中(因为位图中的第一个位是0),第二个字段出现在消息中(因为第二个位是1),所以上。例如,假设你想知道第56个字段是否在消息中,你必须计算位图中的位,直到你到达第56位然后看它是0还是1。
如果他们还向您展示了位图中位的位置,那么该示例将更容易理解,因此您不必计算位数。消息中的第n位数据只是为您计算位数。让我们先看看前9个第n个值。
123456789
0100001000010000000000000001000100000010110000000100100000000100
正如您所看到的,第n位数据只是计算前9位。您可以很容易地看到第6位为0而第7位为1而不计数位。那么第10位呢。
该示例无法像这样显示第10位
12345678910
0100001000010000000000000001000100000010110000000100100000000100
因为10是两位数,并且位于位图中的第10位和第11位之上。要解决这个问题,你可以像这样垂直写10
1
1234567890
0100001000010000000000000001000100000010110000000100100000000100
并将示例写为
0000000001111111111222222222233333333334444444444555555555566666 n-th
1234567890123456789012345678901234567890123456789012345678901234 bit
0100001000010000000000000001000100000010110000000100100000000100 bit map
有些人会将其写为
0 1 2 3 4 5 6 n-th
1234567890123456789012345678901234567890123456789012345678901234 bit
0100001000010000000000000001000100000010110000000100100000000100 bit map
你给出的例子,第n位信息的方式略有不同,但意思相同。
现在,为了回答你问题的第二部分,为什么82x转换为100000010? 82位于16位,而不是10位。