【C语言】-- 整型数据的存储

目录

1.数据类型的分类

2.基本类型

2.1 基本类型大小

2.2 整型家族~

2.3 数据的存储形式

2.4 整形数据的存储方式


1.数据类型的分类

在C语言中有如下类型:

2.基本类型

2.1 基本类型大小

一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。

类型 / 大小(单位字节)

VS32位平台

VS64位平台

char

1

1

short

2

2

int

4

4

long

4

8

long long

8

8

float

4

4

double

8

8

type*

4

8

2.2 整型家族~

char                                              大小范围

        unsigned char                        0~255  (0--2^8-1)

        signed char                            -128~127  (-2^7--2^7-1)

short

        unsigned short [int]                0~65,535  (0--2^16-1)

        signed short [int]                    -32768~32757  (-2^15--2^15-1)

int

        unsigned int                           0~4,294,967,295  (0--2^32-1)

        signed int                               -2,147,483,648~2,147,483,647  (-2^31--2^31-1)

long

        unsigned long [int]                (0--2^32-1)(32位)                 (0--2^64-1)(64位)

        signed long [int]                    (-2^31--2^31-1)(32位)          (-2^63--2^63-1)(64位)

2.3 数据的存储形式

数据在计算机中都是以二进制的形式来存储的,而计算机中的整数有三种2进制表示方法,即原码、反码和补码

整型数据存放内存中其实存放的是补码

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

2.4 整形数据的存储方式

整型的存储有大小端两种方式

大端(存储)模式,是指数据的低位字节内容保存在内存的高地址中,而数据的高位,保存在内存的低地址中;

小端(存储)模式,是指数据的低位字节内容保存在内存的低地址中,而数据的高位,保存在内存的高地址中。

注意:数据存储的单位也是字节

2.3.1 VS平台调试查看存储方式:

总结:

1.VS平台下的数据的存储方式是小端存储模式

2.整型数据的存储单位是字节,如图十六进制的01020304,低位字节的04在存储时被存储到内存的低地址处,是整个字节放到低地址,字节内部数据的存储不发生变化。

2.3.2 VS平台设计程序查看存储方式:

方法一:指针法(利用了指针强制类型转换)

#include <stdio.h>
int check_sys()
{
	int i = 1;//0x 00 00 00 01 
	return (*(char*)&i);//将整型地址强制类型转换为字符类型的指针,再解引用取一个字节的内容
}
int main()
{
	int ret = check_sys();
	if (ret == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	return 0;
}

方法二:联合体法(利用了联合体空间共用的特点

int check_sys()
{
	union
	{
		int i;
		char c;
	}un;
	un.i = 1;
	return un.c;
}
int main()
{
	int ret = check_sys();
	if (ret == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	return 0;
}

在VS平台上的两种程序测试结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值