由于大端和小端与字节顺序有关,并且由于一个u8
是一个字节,所以不会u8::from_be_bytes
并且u8::from_le_bytes
总是具有相同的行为吗?
tre*_*tcl 31
是的,他们有相同的行为。提供面向字节的函数 (swap_bytes
和(from|to)_[bln]e(_bytes)?
)u8
是为了与较大整数保持一致,尽管它们的实现很简单。
除此之外,这使得编写对于所有大小的整数都正确的宏代码变得更容易,而不必使用特殊情况u8
。
在字节级别上没有区别。为了更好地理解 Big-endian 与 Little-endian 的不同之处,请考虑以下内容:
可以看出,示例中有三个字节,每个字节都有不同的颜色。请注意每个字节中的位在 BE 和 LE 中看起来完全相同。
顺便说一句,这是与语言无关的。
至于运行在 上的 Rust 函数u8
,Trent 解释得很好。我的回答更多地关注 BE/LE 一般如何工作的部分。
归档时间: |
|
查看次数: |
3150 次 |
最近记录: |