bit与byte的遐想

背景:

经常搞混bit与byte的区别,所以在此记录

目录

1、bit与bite的区别

2、存储占用空间

3、Java数值基础类型的存储空间与数值范围

4、1byte在二进制中如何表示

 5、正整数,位数不足时,补0;负整数位数不足时,补1


1、bit与bite的区别

计算机是一系列的电路开关。每个开关都存在两种状态 :关和开。如果电路是开的,它的值就是1。如果电路是关的,它的值就是0.

一个0或者一个1存储为一个比特(bit),是计算机中最小的存储单元。

计算机中最基本的存储单元是字节(byte)。每个字节由8个比特构成。

2、存储占用空间

存储单元是对存储数据来说的,比如一个文件有多少字节

存储单位按1024进制 2 的 10 次方

1byte = 8bit

1byte就是1B

1024B = 1KB

1024KB = 1M

3、Java数值基础类型的存储空间与数值范围

官方定义

        byte(1字节) short(2字节) int(4字节) long(8字节)

问题:如何记得各个类型的范围

证明:

        因为:1byte 等于 8个bit。

                1个bit 只能由0或1表示,是两种可能。

                 两种可能用数学的方式表示:2的1次方 记做 2^1

        那么:

                8个bit 记做 2^8 

                 也就是说 1byte = 2^8

                1byte可以存储256个数值

        又因为:

                由于还要表示正负

                表示的数值个数只能对半分,所以要除以2 也是 2^(8-1)

                所以最小数值是 -2^7

                还需要表示0,占了一个数值

                最大数值是2^7-1

        综上所述:

              1byte的范围是 -2^7 到 2^7-1

byte(1字节) = 8 bit = -2^(8-1) = 2^7 得到范围: -2^7 到 2^7-1

short(2字节) = 16bit = -2^(16-1) = 2^15 得到范围:-2^15 到 2^15-1

int(4字节) = 32bit = -2^(32-1) = 2^31 得到范围:-2^31 到 2^31-1

long(8字节)= 64bit = -2^(64-1) = 2^63 得到范围:-2^63 到 2^63-1

4、1byte在二进制中如何表示

下图结果是什么?

byte b1 = 127;
b1++;
System.out.println(b1);

图解

二进制转10进制的过程

 

原码推理到反码的过程

验证结果

 

 

上图说这是127

二进制加1后变成下图,也就是-128

 

 负128为什么这样表示?

反码推到源码的过程

 验证结果

 

 知识点总结:

1、负数用反码表示

2、反码= 补码+1

3、补码= 反码-1

4、补码就是所有位取反,只是推算过程,无其他意义

 5、正整数,位数不足时,补0;负整数位数不足时,补1

 验证

byte的正12 与short的正12

 

 byte的负12 与short的负12

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值