Max*_*ich 4 c# hex numbers endianness bitconverter
只是想知道是否有人可以解释为什么以下两行代码会返回"不同"的结果?是什么导致了反转的价值?这与字节序有关吗?
int.MaxValue.ToString("X") //Result: 7FFFFFFF
BitConverter.ToString(BitConverter.GetBytes(int.MaxValue)) //Result: FF-FF-FF-7F
Run Code Online (Sandbox Code Playgroud)
use*_*016 13
int.MaxValue.ToString("X")输出7FFFFFFF,即2147483647 整数.
另一方面,BitConverter.GetBytes返回表示2147483647在内存中的字节数组.在您的机器上,此数字以小端存储(最后一个字节).并且BitConverter.ToString在每个字节上单独操作,因此不重新排序输出以给出与上面相同的内容,从而保留存储器顺序.
但是这两个值是相同的:7F-FF-FF-FFfor int.MaxValue,big-endian,FF-FF-FF-7Ffor BitConverter,little-endian.相同的号码.
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |