我正在尝试读取包含块位图和 inode 位图的块
我将一个块读取为无符号字符数组,然后将其转换为二进制,如下所示:
for (i = 0; i < 4096; i++) {
for (j = 8; j <=0 ; j--) {
bits[j] = bitmap[i]%2;
bitmap[i] = bitmap[i]/2;
}
for(t=0; t<8;t++)
printf("%d\t",bits[t]);
printf("\n");
}
当我将 '0' 放入 char 并将其打印为
printf("%d",'0');
我得到 48 并且我的位数组包含 00110000 这有效,但是当我检查 inode 位图时它不起作用,例如位图是:
1 1 1 0 0 0 0
但我得到
0 0 0 0 1 1 1
我无法检查块位图是否发生同样的事情。
重复一遍,代码可以正常对话,例如它打印 00110000 即 48,对于 char '0' 也打印 48。这种交换发生在 inode 位图上。当我更改它时,它将适用于 inode 位图,但我现在如何才能适用于块位图。这将修复代码,但逻辑错误。
任何想法?