我有一定数量的块,总是 236 字节。然后我有一些条目需要放入块中,这些条目有时不能完美地放入块中,因此该块将留下一些空字节。
我正在尝试确定写入条目的位置以及应该在哪个块中。
int blocklen = 236;//always the same
int entryindex = 14;//example index of an entry to write
int entrylength = 16;//this will be the same in all entries in these blocks.
int blockindex = ((entryindex + 1) * entrylength) / blocklen;//this works and will correctly calculate the index of the block to write to.
int offset = ((entryindex) * entrylength) % blocklen;// this is incorrect, I need it to work out the offset with in the block.
如果我的 entryindex 为 13,它将在第 0 块中计算为 @ 208,这是正确的。但是如果它是 14 它不适合第一个块所以它应该是块 1 @ 0 而是它在偏移量 224 处表示块 1,而 224 是第一个块中的偏移量,但我需要将它带到下一个块中堵塞。
无论如何,我的数学不太好,这不是我的日子,所以我只是想知道你们中的任何人是否可以帮助我处理那行代码。