当前位置:首页 > 内存 > 正文

整形变量在内存中的存储形式

  • 内存
  • 2024-05-23 01:35:51
  • 751

一、C语言的基本类型在内存中怎么储存的?

1.整数数据:所有整数(正零和负零)以补码的形式存在于内存中。对于正整数,其补码是原码本身。对于负整数,其补码是原码的逆码加1。

2.字符数据:将字符对应的ASCII码(整数,映射关系见ASCII码表)输入到存储编码单元中,这些ASCII码值在计算机中也是用二进制补码表示,以代码形式存储。

3.真实数据:也称为浮点数,计算机也以二进制形式存储它们。关键是将十进制数转换为二进制数。

高级信息

使用C语言存储数据的注意事项

浮点数实际上是用C语言(包括C++)存储的/Java)不仅仅是直接存储“整数二进制+十进制二进制”。转换成二进制格式后,还需要进行处理。实际存储标准是IEEE754

对于浮点数来说,永远是“不可乘”的,分配的字节数取决于编译器对应的浮点数据,数字越大越精确字节数。因此,double比float更准确。不仅整数部分的上限更高,而且小数部分还可以有更低的位数,因此更准确。

尽量避免大浮点数和小浮点数的运算。由于浮点数存储的特点,小浮点数经常会丢失,需要判断是否有两个浮点数,或者一个浮点数与一个整数和常量是否相同。,使用abs(x-y)<0.000001的形式。

参考来源:-整数数据

参考来源:-字符数据

参考来源:-浮点数


二、c语言的int型数据范围和内存中存储是什么?类型是有符号整数类型,对于16位编译器来说,int占用2字节8位;对于32位和64位编译器来说,int类型占用4个字节和32位。不同占用空间,int类型范围不同:2字节时,int范围为-32768~32767;4字节时,int范围为-2147483648~2147483647;

无论采用何种存储方式,最高位为符号位,0代表正数,1代表负数。其余位存储实际值。

2.字符是指计算机中使用的字母、数字、单词和符号,包括:1、2、3、A、B、C、~!·#¥%??—*()——+等在ASCII编码中,英文字母表的一个字符需要1个字节来存储。在GB2312编码或GBK编码中,存储一个汉字需要2个字节。

3.字符数据以其ASCII码值(即字节)存储在内存中。所有数据类型都以二进制代码存储在内存中,其中0和1。

-8编码中,英文字母字符存储需要1个字节,汉字存储需要3~4个字节。在UTF-16编码中,存储英文字母字符或汉字需要2个字节(Unicode扩展区的一些汉字需要4个字节来存储)。在UTF-32编码中,存储世界上任何字符都需要4个字节。
是C/C++整数数据类型之一,其他如int/long/short等,当有符号未指定标准时,默认为有符号。编译器可以作为有符号数或无符号数执行一些编译器,例如pSOS编译器,还可以通过编译开关确定它是有符号数还是无符号数。