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

我们先来看int的底层源码

最大值最小值 而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个数

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字节的。

文章转自:菜鸟理解int为啥是4个字节_C/C++/C#-答学网

作者:答学网,转载请注明原文链接:http://www.dxzl8.com/

你可能感兴趣的:(c++,算法,数据结构)