第N位到BitMap转换

时间:2015-04-10 14:28:42

标签: bitmap iso8583

我正在从这里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

2 个答案:

答案 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位。

相关问题