gpt4 book ai didi

c - char数组在小端或大端系统中的排序会有所不同吗

转载 作者:太空狗 更新时间:2023-10-29 16:58:41 28 4
gpt4 key购买 nike

我有一个数组 char c[12] = {'a','b','c','d','e','f','g','h','0','1','2','3'}在十六进制中,这些值将是 {0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x30, 0x31, 0x32, 0x33}

我想知道数组在大端系统或小端系统中是否会以不同方式存储在内存中?

我认为它们是相同的,因为字节序系统通过确定如何通过数组中单个元素的最低或最高有效位来存储元素并对字节进行排序来工作,但是由于 char 只是一个byte 他们以相同的方式对字节进行排序。

最佳答案

想想“big endian”和“little endian”是什么意思。

内存是一个字节序列(或者在更有趣的机器上,是几个序列)。对于大小为两个或更多字节的项目,项目的字节可以以不同的顺序存储在内存中,两个最明显的顺序称为“大端”和“小端”(如果您有三个或更多字节,那么就有不止两种可能的字节顺序,而且无论如何,谁说 int 的位不能以困惑但固定的顺序分布在多个字节上?)

但是对于一个字节序列来说,字节的顺序就是字节的顺序。 “Big endian”和“little endian”是通过较大项的位排列在字节数组中的方式来定义的。对于字节序列,它们按照它们存储的顺序存储——不可能有任何其他顺序。这就像问“数字 1、2、3、4 可以与数字 1、2、3、4 有什么不同吗?”当然他们不能。

关于c - char数组在小端或大端系统中的排序会有所不同吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26456813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com