Java中的二进制如何存储? 正数 负数 小数

1.对一个二进制数 1100 1111 1100 0111  转化为十进制是多少?

如果最高位是符号位转换成十进制为 -12345, 而如果最高位不是符号位则为 53191

如何怎么判断1100 1111 1100 0111最高位是否是符号位呢?

不能判断 数据本无型,原本在人心.你想把它当做有符号就有符号,你想把它当做无符号就是无符号.它本身并没有类型区别.

 

2.对于 _ _ _ _  _ _ _ _ 八个bit表示的数

你认为它是无符号的,那么它可以表示0~255共计256个数字

你认为它是有符号的,那么它只能表示-128~127共计256个数字

 

3.计算机中存储的都是二进制  

bit(位):b,也称为比特(bit),每个二进制数字0或1就是一个位(bit).     8b(bit)=1B(byte 字节)

对于上面的问题,我们在使用前必须明确是否有符号位。

在Java中所有的数据类型都是有符号类型。其他语言有无符号位的类型

int数据类型占4个byte(字节) 最高位是符号位

00000000 00000000 00000000 00000000    -2^31~2^31

 

正数的原码、反码、补码都一样

负数的反码 =  它的原码符号位不变,其他位取反(0 ->1 ; 1->0 );

负数的补码 = 它的反码 +1;

在计算机运算的时候,都是以补码的方式来运算的(符号为也运算);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值