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

c++进阶

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

c++进阶

计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。

我们现在有一个整数是258。用16进制表示是0x0102,然后我们把这个整数拆分成两个字节,第一个字节为 0000 0001,第二个字节为 0000 0010。

如果在一个使用大端字节序的电脑上,这个整数会被这样存放:

如果一个使用小端字节序的电脑上,这个整数的高字节就会存放在高地址上:

现在大部分的机器,都采用了小端字节序。但是在 IO 方面,则大部分使用大端字节序。例如,你要使用网络发送一个 int 类型的变量,要先把 int 转换成大端字节序,然后通过网络发送。

大端字节序又被称之为网络细节序。

判断电脑是大端字节序还是小端字节序?

#include 

int main()
{
    int i = 0x1122;
    char * p = (char *)&i;
    if (p[0] == 0x22 && p[1] == 0x11) {
        printf("Little Endiann");
    }
    else if (p[0] == 0x11 && p[1] == 0x22) {
        printf("Big Endiann");
    }
}
int JudgeSystem(void) {
	int a = 1;
	char * p = (char *)&a;
 
	if (1 == *p) {
		return 1;
	} else {
		return 0;
	}
}

![](https://img-blog.csdnimg.cn/5247884f08a4442fa4ac236b4293fc43.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATWlyYWl0b3dhX0ZUWQ==,size_18,color_FFFFFF,t_70,g_se,x_16)

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

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

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