数据类型,构造类型,大端字节序、小端字节序、判断当前机器的字节序方法

signed:有符号的

unsigned:无符号的

整型:

char        //字符数据类型
short       //短整型
int         //整形
long        //长整型

浮点型:

float
double

构造类型:

数组类型
结构体类型 struct
枚举类型 enum 
联合类型 union


正数的原反补都相同;内存中存放的是二进制补码

ecb068832014432787380d22e3fab515.png

空类型:void

无类型

int a=-1;

//10000000 00000000 00000000 00000001    原码

//11111111 11111111 11111111 11111110           反码

//11111111 11111111 11111111 11111111            补码

内存中存补码:符号位和数值位统一处理,CPU只有加法器

1-1=1+(-1)补码计算:

  00000001

+11111111

=00000000

字序存储:

int a=0x11223344;//以11223344为例

小端字序存储:把一个数字的低位字节的内容存放在内存地址低地址处,高位字节的内容存放在内存地址高地址处  

大端字节序、小端字节序、判断当前机器的字节序方法:

参考整形数字1的存储,采用char的单字节数据特性判断存储数据的首地址的元素,如果首地址的元素是1,则为小端字节序的存储方式

 如下

int a = 0x12345678;

存储方式为:小端存储方式

#include <stdio.h>

int check_sys()
//如果是大端,返回0
//如果是小端,返回1
{
	int a = 1;
	char* p = (char*)&a;//强制取a地址转换成char类型

	if (*p == 1)//如果首地址的元素是1,则表示是小端
		return 1;//返回 1
	else
		return 0;
}
int main()
{
	int ret = check_sys();
	if (1 == ret)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值