Моя структура данных инициализируется следующим образом:
[[0,0,0,0,0,0,0,0] for x in range(8)]
8 символов, 8 строк, каждая строка имеет 5 битов для столбцов, поэтому каждое целое число может находиться в диапазоне от 0 до 31 включительно.
Мне нужно преобразовать число 177 (может быть между 0 и 319) в символ, строку и столбец.
Позвольте мне повторить попытку, на этот раз с лучшим примером кода. Биты не установлены.
Хорошо, я добавил обратное к проблеме. Может быть, это поможет.
chars = [[0,0,0,0,0,0,0,0] for x in range(8)]
# reverse solution
for char in range(8):
for row in range(8):
for col in range(5):
n = char * 40 + (row * 5 + col)
chars[char][row] = chars[char][row] ^ [0, 1<<4-col][row < col]
for data in range(320):
char = data / 40
col = (data - char * 40) % 5
row = ?
print "Char %g, Row %g, Col %g" % (char, row, col), chars[char][row] & 1<<4-col