重生到大一之操作符疑难点和记忆分享(1)

    🍌1. 二进制转八进制

记忆:二进制数从右往左每三个一组,一组内转化数字相加为一个八进制数字,到最左不足三个,也算一组。

原因:

a774afe354f04535ab5a425328839bbe.jpg

    🌽2.二进制转16进制

记忆:跟转八进制一样,从右往左每四个一组,不足四个也为一组,每组内转化为一个16进制数字

原因:

b6491f553c194ec5a02034113024542e.jpg

   🍆 3.关于原码 反码 补码的关系以及疑难点

原码到补码和补码到原码都是取反+1

903401a239824ad3931c9006ff86560a.jpg

 同时需注意正数的原码 反码 补码都是相同的,而负数的各不相同,在&和|,以及按位取反中,一串二进制数可以直接推出结果来,那串二进制数字就是原码,而拿来操作的是补码,操作包括&,|,~ 。所以我们只需要注意,如果开头是零,就不用在乎原码转补码,但如果开头是1(也就是负数),则我们需要把计算后的结果,也就是计算出的二进制数,来取反+1,得到原码才能推出数字来 ,这里说的有点抽象😬😅

——>如果a=- 1,可以推出a的原码

:10000000000000000000000000000001

——>b=2 b的原码

:00000000000000000000000000000010

——> int c=a+b

此时,a与b参与计算(也就是"操作"),则a需要转化为补码,b也需要转化为补码,但由于b是正数,它的补码与原码相同,所以就不用在乎,

a的补码:

1111111111111111111111111111111

(其实,对于原码转化为补码,要进行转化只是针对于负数,为当有负数的时候,就要注意转化,正数的时候就不用管)

☆注意,除了~(全部取反),其他的取反,符号位是终始不变的,(相当于雷打不动的竖立着,来表示自己的身份(符号)

8aa957abf55744bca64ea9f8b9ac2c0c.jpg

 

所以c的补码是

:00000000000000000000000000000001

正数的补码等于原码,所以c的原码也是这个,所以推出c=1

   🍉4.移位操作符记忆及疑难点

  >>右移操作符  <<左移操作符(哪边尖刺手就往哪边移)

移动的是储存在内存中的二进制位也就是补码

左移为左边丢弃,右边补零

右移分为两种,一种是逻辑右移,一种是算术右移

第一种逻辑右移:左边用零填空右边丢弃

第二种算术右移:左边用原该值的符号填充,右边丢弃

其中右移是第一种还是第二种是取决于编译器的,通常采用的是算术右移,当然不能移负数位

本人刚上大一,这是一些学习上的收获,若有不足,还请指出,我会认真反思Σ>―(〃°ω°〃)♡→

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值