CSAPP笔记(计算机组成原理)「持续更新」

#第一讲

#位运算

#&运算 (and)

&10
110
000

#|运算 (or)

10
111
010

#^运算

^10
101
010

#~(取反)

~取反结果
10
01

#signed and unsigned

signed的数第一位「二进制」,代表了符号,1为负,0为正。
unsigned的数第一位「二进制」,不代表符号,也只是代表值。

Unsigned & Signed Numeric Value

xB2U(X)B2T(X)
000000
000111
001022
001133
010044
010155
011066
011177
10008-8
10019-7
101010-6
101111-5
110012-4
110113-3
111014-2
111115-1

TMax && TMin && UMax

TMax: 有符号数的最大值,即二进制下符号位为0,其他位的数为1的情况。
TMin: 有符号数的最小值,即二进制下符号位为1,其他位的数为0的情况。
UMax: 无符号数的最大值,即二进制下所有位数都为1的情况

规律 |TMin| = TMax + 1;
|UMax| = 2 * TMax + 1;

816
UMax25565,535
TMax12732,767
TMin-128-32,768

样例表格

Constant1Constant2RelationEvaluation
00U==unsigned
-10<signed
-10U>unsigned
2147483647-2147483647-1>signed
2147483647U-2147483647-1<unsigned
-1-2>signed
(unsigned)-1-2>unsigned
2147483647U2147483648U<unsigned

 位的延伸和收缩

1.延伸:

(1)如果是signed的数,延伸最左边的符号位,不改变该数的值。

(2)如果是unsigned的数,延伸最左边的位数,如果为1则翻倍加1;如果为0则不改变。

2.收缩:

(1)如果最左和最左右边一个相同并且是signed,则我们不改变值。

(2)如果是signed,并且最左和最左右边一个不相同,最左位为1,则变大,最左位为0,则减小。

(3)如果是unsigned,最左位为0,不改变,最左位为1,改变。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值