gpt4 book ai didi

c - C 二进制文件的位字节顺序和可移植性

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:34 25 4
gpt4 key购买 nike

在 C 中,我有一个 char 数组,用于存储位级别的数据。我将这些数组存储到文件中,然后在具有不同体系结构的机器中读取它们。我的问题是位的顺序是否能保证一致?例如,如果我将“10010011”存储到第一个字节,相邻的 1 是否总是被读取为位于 2^0 和 2^1 位置,或者它们最终会被解释为 2^7 和 2^6 位?

编辑:我想为稍后阅读此页面的人澄清一下这个问题。字节顺序是多字节对象中字节的顺序,但我关心的是给定字节中的位。当一个字节存储到磁盘时,它存储为(通常)8 位的序列。我不是硬件专家,但它必须以某种方式归结为那个。所以,我担心的是字节的存储方式是不是任何机器都会读取原始的 unsigned char 值,或者如果一台机器是 3,那么另一台机器是 192。我担心这些位最终会以某种方式被洗牌。显然,根据我选择的答案以及下面的评论之一,这不是问题。谢谢。

最佳答案

简单的答案:

这些位仍然是正确的顺序。

但是,如果执行超过 %c 的任何格式转换,例如 %d,那么读取架构的字节顺序将决定字节顺序。每个字节中的位仍然相同。

关于c - C 二进制文件的位字节顺序和可移植性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28004830/

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