栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】整数在内存中的存储

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】整数在内存中的存储

整数在计算机中以二进制数表示。

整数表示的范围在头文件limits.h中定义。

1. 无符号整数的表示方法
unsigned int a = 25;

00000000000000000000000000011001       1×2^4+1×2^3+0×2^2+0×2^1+1×2^0=25

高位<------------------------------------->低位

n位可以表示的无符号整数有0~2^n-1

无符号整数类型最小值最大值
unsigned char0255
unsigned short065535
unsigned int04294967295
2. 有符号整数的表示方法

有符号整数有3种二进制表示方法,即原码、反码和补码。最高位为符号位,0表示正数,1表示负数,其余为数值位。在计算机中整数以补码的形式存储。

原码:直接将数值按照正负数的形式翻译成二进制。

正数的反码、补码与原码相同。负数的反码、补码要经过如下计算。

反码:将原码的符号位不变,其他位依次按位取反。补码:反码+1就得到补码。

int a = -25;

原码:10000000000000000000000000011001

反码:11111111111111111111111111100110

补码:11111111111111111111111111100111

8位有符号整数的取值范围如下图所示:(补码10000000不表示-0,表示-128)

有符号整数类型最小值最大值
signed char-128127
signed short-3276832767
signed int-21474836482147483647
3. 大小端模式

大端(存储)模式是指,数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中。

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

如0x12345678,

大端模式:12 34 56 78

             低地址<--->高地址

小端模式:78 56 34 12

             高地址<--->低地址

判断当前计算机是大端模式还是小端模式:

#include

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

int main()
{
	int ret = check_sys();

	if (ret == 1)
		printf("小端n");
	else
		printf("大端n");

	return 0;
}

1(int型)的补码用十六进制表示为0x00000001,

大端模式:00 00 00 01

             低地址<--->高地址

小端模式:01 00 00 00

             高地址<--->低地址

*(char*)&a表示取出a的地址,然后强制类型转换为char*,解引用,此时只能访问一个字节的内容。如果这一个字节的内容为0,为大端模式;如果这一个字节的内容为1,为小端模式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号