数据在内存中的存储

🌈 个人主页:白子寰
🔥 分类专栏:魔法指针进阶C++C语言C语言题集C语言实现游戏👈 希望得到您的订阅和支持~
💡 坚持创作博文(平均质量分78.8+),分享更多关于深度学习、C/C++领域的优质内容!(希望得到您的关注~)

目录

导图

整数在内存中的存储

(正,反,补)码之间的转换

大小端字节序和字节序判断 

一图KO大小端概念

 判断大小端的两种方式

①指针

②指针+函数


导图


 

整数在内存中的存储

(正,反,补)码之间的转换


对于整型数据来说:数据存储方式存的是补码 

为什么?

使⽤补码,可以将符号位和数值域统⼀处理

同时,加法和减法也可以统⼀处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。


 

大小端字节序和字节序判断 

在下列代码中 “ int a = 0x11223344 ; ”,这个数字是以字节为单位倒着存储的。

为什么呢?

一图KO大小端概念

以上面代码a为栗子


 判断大小端的两种方式

①指针

int main()
{
	int a = 1;
	//方式一
	if(*(char*)&a == 1)

	//方式二
	/*char* p = (char*)&a;
	if (*p == 1)*/
		printf("小端\n");
	else
		printf("大端\n");
	return 0;
}

 

②指针+函数

int check_clc()
{
	int a = 1;
	return *(char*)&a;
	//1.取出a的地址
	//强制类型转换为char*的指针,再解引用
}
int main()
{
	int ret = check_clc();
	if (ret == 1)
		printf("小端\n");
	else
		printf("大端\n");
	return 0;
}

控制台输出:小端 

为什么会有大小端之分?

因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着⼀个字节,⼀个字节为8 bit 位,

但是在C语⾔中除了8bit的 char 之外,还有16bit的 short 型,32bit的 long 型(要看具体的编译器),

另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于⼀个字节,那么必然存在着⼀个如何将多个字节安排的问题。

因此就导致了大端存储模式和小端存储模式。


 ***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。

等等等等一下,分享最近喜欢的一句话:

“你都不知道山有多高,你怎么能知道终点在哪呢 -- 樊振东”。

我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!! 
好了划走吧。

 

相关推荐

  1. 数据内存存储

    2024-03-14 01:52:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 01:52:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 01:52:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 01:52:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 01:52:02       18 阅读

热门阅读

  1. Kafka及Zookeeper集群部署

    2024-03-14 01:52:02       21 阅读
  2. 软件测试面试题

    2024-03-14 01:52:02       24 阅读
  3. 可变参数&collections学习

    2024-03-14 01:52:02       19 阅读
  4. Linux Shell:local关键字

    2024-03-14 01:52:02       19 阅读
  5. 01-shell的自学课-基础变量学习

    2024-03-14 01:52:02       18 阅读
  6. HTML 参考手册- (HTML5 标准)

    2024-03-14 01:52:02       22 阅读
  7. Android UI 代码实现:可换行的布局控件

    2024-03-14 01:52:02       22 阅读
  8. Keil C51 汉字显示 BUG 解决方案

    2024-03-14 01:52:02       22 阅读
  9. 【npm】 npm link软链接的使用

    2024-03-14 01:52:02       18 阅读