文件中有四个字符 abcd
以int32_t读入只有1个数: 1684234849
转为二进制:1100100011000110110001001100001
每8位分隔(最前面补了个0):01100100、01100011、01100010、01100001
转十进制:100、99、98、97,即 dcba
可以看到第一个字符在最低位
int8_t(1684234849) 截取最低8位,得到97,即 a
int8_t(1684234849>>8) 向右移动8位后截取最低8位,得到98,即 b
转int16_t 同理。
反之,如果将int32_t数字写入文件:1684234849
以int8_t读出,会依次读到97、98、99、100,即abcd
int8_t 还原为int32_t:
int32_t(int32_t(100) << 24 | int32_t(99) << 16 | int32_t(98) << 8 | int32_t(97))
结果为1684234849
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170546.html原文链接:https://javaforall.cn