有若干已知尺寸的 bit 矩阵,以 uint8 数组存储,譬如
5x3 的
[10110 000,
11011 000,
01010 000]
13x5 的
[11010011, 01100 000,
01100100, 10110 000,
11001010, 01010 000,
00111010, 10101 000,
11010111, 00111 000]
还有 6x7 9x13 5x12 13x6 等等等等
单 row 所占 u8 数为 每 row bit 数 / 8, 空余位填 0
需求是把这些数组横竖转置,譬如
5x3 变成 3x5
[110 00000,
011 00000,
100 00000,
111 00000,
010 00000]
13x5 变 5x13
[10101 000,
11101 000,
01010 000,
10011 000,
00110 000,
01001 000,
10111 000,
10001 000,
01010 000,
10100 000,
11011 000,
01101 000,
00011 000]
依次类推
这类需求我一般直接搓个 python 脚本
d = {}
with open(sys.argv[1]) as fp:
for l in fp.readlines():
k = l.strip("\n")
if not k in d:
d[k]=1
else:
d[k]+=1
print("Line\t| Times")
print("-------------")
for c,t in d.items():
print(f"{c}\t| {t}")