菜鸟理解int为啥是4个字节

我们先来看int的底层源码

菜鸟理解int为啥是4个字节_第1张图片

最大值最小值 而int如果转成十进制的话,那么他们的范围[-231~231 -1],也就是“-2147483648 ~ 2147483647”  十位数。

首先计算机只认识二进制。而一个字节是8位二进制,只用0和1来表示状态,那么我们看看一位能表示多少个状态

1 位:0 和 1 也就是2的一次方,最多表示2个状态(要么是0,要么是1)
2 位:00 和 11 也就是2的2次方,最多表示4个状态,也就是(00,01,10,11)
3 位: 000 和 111 也就是2的3次方,最多表示8个状态,也就是(000,001,010,011,100,101,110,111)
……以此类推
8位: 就可以表示2的8次方个状态 = 256个状态
9位:表示2的9次方 = 512个状态
10位:表示2的10次方 = 1024个状态
32位:表示2的32次方 = 4294967296个状态

8位数  256个状态

计算机为了区分正负数,所以把256个状态一半给了负数,也就是“-128~127”这256个数

2的32次方等于4,294,967,296 的一半 2,147,483,648 刚好是int的取值范围

int  为2的32次方   32/8=4  

  • int占用4个字节,它的取值范围为 -2147483648 ~ 2147483647
int a = 1; // 00000000 00000000 00000000 00000001

 byte 占用1个字节 它的取值范围为 -128 ~ 127

 2的8次方   8/8=1

byte a = 1; // 00000001

  • short 占用2个字节,它的取值范围为 -32768 ~ 32767

 2的16次方     16/8=2    

short a = 1; // 00000000 00000001

哦哦哦哦哦哦  我一下就懂了。然后后面还有后续内容

所有的int都是占四个字节吗?

第一个解释是int据说是根据不同的编译器在定义的,不同的编译器int的字节是不一样的,但是大多的编译器int都占4个字节。

第二个解释是操作系统16位的时候,int 2字节,操作系统32位的时候,int 4字节,由于32位系统之前占主流地位,实际现在就算是64位系统,出于兼容性考虑,int也是4字节的。
 

你可能感兴趣的:(数据结构,开发语言)