admin管理员组文章数量:1794759
C语言—大小字节序和字节序判断
1. 什么是大小端?
超过一个字节的数据在内存中存储时,就有存储顺序的问题,按照不同的存储顺序分为大端字节序存储和小端字节序存储。
大端(存储)模式:
是指数据的低位存储在高地址处,高位存低地址处.
小端(存储)模式:
是指数据的低位存低地址处,高位存高地址处.
高低位的区分: 比如123中的3就为最低位,1为最高位. 16进制的0x11223344中44就是最低位.
2. VS中的存储模式
代码语言:javascript代码运行次数:0运行复制int main()
{
int n = 0x11223344;
return 0;
}
调试这行代码:
由图中可以看出VS是小端字节序存储
3.设计一段代码判断当前机器的字节序
代码语言:javascript代码运行次数:0运行复制#include<stdio.h>
int main()
{
int n = 1; //n的16进制表示形式为0x00000001
//如果是大端存储就为 00 00 00 01
//如果是小端存储就为 01 00 00 00
//只拿一个字节,大端存放拿的就是00 小端存放拿的就是01
if(*(char*)&n == 1) //将n强制类型转换为char*类型,每次只访问一个字节,再解引用.
//注意:将n直接强转为char类型是不行的,因为强制类型转化位char拿的总是最低位的一个字节.
printf("小端");
else
printf("大端");
return 0;
}
用函数方式实现
代码语言:javascript代码运行次数:0运行复制#include<stdio.h>
check_sys()
{
int n = 1;
return *(char*)&n; //*(char*)&n这个表达式的结果无非就是0或1,所以直接返回*(char*)&n就行.
}
int main()
{
int ret = check_sys();
if(ret == 1 )
printf("小端");
else
printf("大端");
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-03-17,如有侵权请联系 cloudcommunity@tencent 删除调试存储函数设计数据本文标签: C语言大小字节序和字节序判断
版权声明:本文标题:C语言—大小字节序和字节序判断 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754686006a1705194.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论