java向文件中写整数_java:将整数写入无符号8位整数的文件

有符号与无符号只是解释位模式的问题,而不是位模式本身.

因此,只要整数在0到255范围内,就可以将它们插入字节并将字节写入文件.

但是,由于Java将字节位模式解释为已签名,因此在重新读取时必须小心.

例如,假设你有整数253.这是(完整的32位形式):

00000000000000000000000011111101

如果你这样做:

int i = 253;

byte b = (byte) i;

然后b将包含位:

11111101

如果你要求Java使用它,Java将声称它是-3,因为当将位解释为signed时,-3表示为模式11111101.因此,如果将该字节写入文件,则将写出位11111101,如预期的.

同样,当您在读取文件时将其读回一个字节时,您读入的字节将填充位模式11111101,Java也将其解释为-3.所以你不能只做:

byte b = readByteFromFile();

int i = b;

因为Java会将b的内容解释为-3并给出一个整数,表示-3为32位整数,它将是:

11111111111111111111111111111101

相反,你需要屏蔽掉一些东西,以确保你最终得到的整数是:

00000000000000000000000011111101

所以,

byte b = readByteFromFile();

int i = (0x000000FF) & b;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值