【发布时间】:2018-05-20 22:42:03
【问题描述】:
我需要创建布尔/二进制数组,其中的行表示给定范围内每个数字的二进制形式。每列保存给定位位置的值。范围由位宽和二进制编码方案确定。然后我需要计算一列中与前一个单元格不匹配的单元格数。
我相信计数过程只是将数组与自身向下移动一行进行异或。 XOR 结果中每一列的总和就是我的转换计数。
我需要对编码为 [十六进制、八进制、十进制] 的 [有符号、无符号] 值的每个组合执行此操作。编码方案和可用位之间的不匹配会导致无法使用的位。
例如一个 4 位无符号八进制数组仍然只有 8 行。但是,如果它是有符号的,那么第 4 位用于符号,并且数组是完整的 16 行。
最终目标是为各种位宽、编码和符号使用的每个位位置的转换数创建标记的汇总 n-gram 集。例如 1 的摘要 n-gram 将是 {3-bit, octal, unsigned, [1, 3, 7]}。示例 3 的摘要 n-gram 是 {4-bit, octal, signed, [1, 2, 6, 13]}。示例 4 是 {4-bit, hexadecimal, signed, [1, 2, 6, 13]}。
示例:
1) 包含所有可能的 3 位无符号八进制值的 8x3 二进制数组:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
2) 所有可能的 4 位无符号八进制值的 8x4 二进制数组:
与 #1 相同,但最左边的一列全为零
3) 所有可能的 4 位有符号八进制值的 16x4 二进制数组:
注意:可以重复计数零(-0 和 +0)
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
4) 16x4 二进制数组,包含所有可能的 4 位有符号十六进制值:
同#3
【问题讨论】:
标签: python arrays pandas numpy binary