首页 > 编程知识 正文

int什么时候占两个字节(Java中int为什么占四个字节?)

时间:2023-05-04 22:26:36 阅读:123433 作者:1984

简单了解计算机为什么要采用二进制表示信息

由于计算机作为电子计算机的工具,由大量的电子器件构成,所以在这些电子器件中,电路的通断、电位的高低容易分别用两个数字符号"1"和"0"来表现,同时二进制算法也很简单,因此二进制数据由0和1两个数字表示,即

其实最先使用的不是二进制,而是十进制。 十进制比较合理,因为人们有十个手指头,手可以表示十个数字。 0的概念诞生于很久以后,所以不是0-9而是0-10。

电子计算机问世以来,用电子管表示10种状态太复杂了,所有电子计算机中只有基本状态,开和关两种。 也就是说,电子管的两种状态决定了以电子管为基础的电子计算机用二进制表示数字和数据。 常用的进制方法有八进制和十六进制。 计算机科学中经常使用十六进制,但十进制的使用非常少。 这是因为十六进制和二进制有天然的联系。 四个二进制可以表示0到15之间的数字,这正好是可以用十六进制一个表示的数据。 也就是说,要将二进制转换为十六进制,只需每四位转换一次即可。

我知道了为什么用二进制。 现在就直奔我们的主题

在二进制位分析中,首先计算机只识别二进制。 另一方面,1字节是8位二进制文件,仅用0和1表示状态。 现在,让我们来看看一个位可以表示多少状态

1位: 0和1或2的初级侧最多为2个状态(0或1或2位) 00和11或2的平方,最多为4个状态(00,01,10,11 ) 3位) 000和111或2的3次方,最多为8个状态表示2的9次方=512个状态10位。 表示2的10次方=1024个状态32位。 表示2的32次方=4294967296个状态时,可以看到底层的源代码

int转换为十进制后,他们的范围[-231~231 -1],即“-2147483648 ~ 2147483647”

计算机为了区分正负数,将256个状态的一半给定为负数,即“-128~127”的256个数。 (由于是正负,所以请认为从8位中取来表示。 )

byte可以以1字节=8比特表示2的8次方个

short是2字节=16比特……

int为4字节=32位

那么为什么int会占4个字节呢? JAVA有八种基本数据类型: byte、short、int、long、float、double、char和boolean

其中byte、short、int、long都表示整数,但他们的取值范围不同

字节占用1个字节,值范围为- 128到127

内存开销:字节a=1; //00000001 short占用2个字节,-32768 ~ 32767 short a=1; //00000000 00000001 int占用4个字节,其取值范围为-2147483648 ~ 2147483647 int a=1; //00000000000000000000000000000000000000001 long占用8个字节,取值范围从- 922337203685474808到922337203685474807

这里不写~q :“所有的int都占4字节吗? 回答:不一定是4字节。 他和操作系统有关。 在编译器决定int占多少字节之前的16位系统中,int为2字节,而在当前的32位系统中,int为4字节。 其实现在基本上是64位系统。 所谓的16位32位64位系统由cpu决定,机器指令的寻址、寄存器的位数决定的os受cpu限制,但是在32位的cpu下,16位的os也能运行很多os 如果编译器本身是在16位时代创建的,那么操作系统提供了一个模拟16位的子环境,如果该编译器必须使用,那么int只是语言定义中的一个关键字,看起来像compiler。 complier说那是几个人。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。