小编V.M*_*tov的帖子

u128 数字如何存储在内存中?

我正在重建u128通过互联网传递的数字。我的想法是u8在连接的一端将数字分解为s,发送这些并u128在另一端重建。

我尝试u8通过将其指针转换*const u8为to来重建缓冲区*const u128

fn main() {
    let mut b = [0u8; 16];
    b[14] = 1;
    let addr = &b as *const u8 as *const u128;

    unsafe {
        println!("{:?}", &b as *const u8);
        println!("{:?}\n", b);

        println!("{:?}", addr);
        println!("n = {}", *addr);
    }
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,生成的输出如下所示:

0x7efe2088
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]

0x7efe2088
n = 5192296858534827628530496329220096
Run Code Online (Sandbox Code Playgroud)

我希望这个数组包含

00000000 00000000 …
Run Code Online (Sandbox Code Playgroud)

rust

3
推荐指数
1
解决办法
178
查看次数

标签 统计

rust ×1