gpt4 book ai didi

c# - 十六进制的 BitConverter VS ToString

转载 作者:太空狗 更新时间:2023-10-30 00:08:45 27 4
gpt4 key购买 nike

只是想知道是否有人可以解释为什么以下两行代码返回“不同”的结果?是什么导致了相反的值(value)观?这与字节顺序有关吗?

int.MaxValue.ToString("X") //Result: 7FFFFFFF
BitConverter.ToString(BitConverter.GetBytes(int.MaxValue)) //Result: FF-FF-FF-7F

最佳答案

int.MaxValue.ToString("X")输出7FFFFFFF,即数字2147483647 作为一个整体.

另一方面,BitConverter.GetBytes 返回一个字节数组,表示内存中的 2147483647。在您的机器上,此数字存储在小端(最高字节最后)。并且 BitConverter.ToString 分别对每个字节进行操作,因此不会重新排序输出以提供与上面相同的结果,从而保留了内存顺序。

然而,这两个值是相同的:7F-FF-FF-FF 用于 int.MaxValue,采用大端格式,而 FF-FF- FF-7F 用于 BitConverter,在小端。相同的数字。

关于c# - 十六进制的 BitConverter VS ToString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107121/

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