8.9(23.4.16)数据在内存中的存储

文章讲述了计算机中整型数据如short,unsignedchar等在内存中的存储方式,强调了补码表示法以及大小端字节序的概念。在小端存储中,低位存储在低地址。补码用于存储和计算,而打印时显示为原码。通过示例展示了signed和unsigned类型的取值范围差异。
摘要由CSDN通过智能技术生成

unsigned char 无符号的数(类似身高等无正负之分)
short=signed short 默认有符号
对于整型:数据存放内存的是补码

之所以用补码存储
001 1
1001 -1
100010 -2
原码得出的是-2,不是0

若是补码
001
11111
10000 32位整型,结果为0

转换规则

补码-1取反得到原码
补码取反再加1得到原码

大小端介绍

一个数值超过1个字节,在内存中就有顺序问题
小端字节序存储:数据低位保存在内存低地址中(字节为单位)
eg: 0x112233344— —443322110x
-------------------低位 -低位----------高位

小端倒着放常见于pc x86中,联想鸡蛋大小端点理解

注意
1.内存中存放的是补码
2.整形表达式计算时候用补码计算
3.打印和看到的时候都是原码

判断大小端
int check_sys()
{
int a=1;
return (char)&a;
}

int check_sys()
{
	int a=1;
	return *(char*)&a;
} 

char 只取一个字节
char* 强制类型转换
&a 这里本身是int*类型的

signed short 取值范围-32768~32767
unsigned short 取值范围0~65535
.-----------------------------10000~011111

eg:
signed char b=-1;
unsigned char c=-1;
printf(“%d,%d”,b,c);
.=------- -1 ,255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值