机器级大小端及移位规则

本文深入探讨了位运算原理,包括二进制、十六进制转换,以及无符号和有符号(补码)数的表示范围。解析了字节顺序(大端与小端)的概念及其在内存存储中的应用,并讨论了不同字长下-1的二进制与十六进制表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

x /16 依次取余 ,最先余作十六进制的最低 字节有效位,最后的余数 作最高的字节有效位,其中我们需要注意理解 的是 一个 数据的 最高字节及 内存的 高地址及低地址

更进一步的就算机器存储的大小端模式了

小模式就是 低地址位存储低字节有效位,高地址存储高字节有效位;

大端模式 低地址位存储高字节有效位 ,高地址存储低字节有效位;
C机器级移位,编码表示 无符号编码表示,有符号编码表示一般最常见的方式是补码 w位补码所能表示的值范围是

首先我们得心知 补码的最高有效位是符号位,当符号位位1是表示的是负值,当符号位是0是,表示的是非负

w位补码最小值是-2(w-1)次方 ~ 2(w-1)次方 - 1;

我们用B2T(w)表示补码;

B2U(w)表示无符号整型数据;

二进制 -> 十六进制 四位等于一位依次;

我们得出的无符号 数 w位二进制可表示的 值的范围为 [2(w)次方到 ~ 0];

有符号 及补码的表示 ,补码中 机器级位 的最高有效位位符号位

得出,当补码的最高有效位为1时,表示的数值为负,当补码的最高位为0时表示的是非负;

所以得出的补码能表示的取值范围为 [-2(w-1) ~ 2(w-1) - 1];

-2(w - 1)

2(w - 1) - 1

2(w)

所以我们又得出 有符号 既补码表示时 -1 的字长w = 8是 11111111 最高位 符号位 换成两个十六进制时是0xFF 字长w= 16时 换成十六进制16/4 = 4 既0xFFFF

w = 32 32/4 = 8 oxFFFFFFFF w = 64 64 / 4 = 16 既oxFFFFFFFFFFFFFFFF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值