EP7:二进制数及其操作符的使用(c语言学习笔记)

1. 二进制与二进制的转换

其实我们经常能听到2进制、8进制、10进制、16进制这样的讲法,那是什么意思呢?其实2进制、8进 制、10进制、16进制是数值的不同表示形式而已。

首先我们还是得从10进制讲起,其实10进制是我们生活中经常使用的,我们已经形成了很多尝试:

• 10进制中满10进1

• 10进制的数字每⼀位都是0~9的数字组成 其实二进制也是⼀样的

• 2进制中满2进1

• 2进制的数字每⼀位都是0~1的数字组成 那么 1101 就是二进制的数字了。

1.1 二进制与十进制

其实10进制的123表示的值是⼀百二十三,为什么是这个值呢?其实10进制的每⼀位是权重的,10进 制的数字从右向左是个位、十位、百位....,分别每⼀位的权重是 10 , 10 , 10 ...

1.2 十进制转二进制

 1.3 二进制转八进制

8进制的数字每⼀位是0~7的,0~7的数字,各自写成2进制,最多有3个2进制位就⾜够了,⽐如7的二进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算⼀ 个8进制位,剩余不够3个2进制位的直接换算。

如:2进制的01101011,换成8进制:0153,0开头的数字,会被当做8进制。

 1.4 二进制转十六进制

16进制的数字每⼀位是0~9,a ~f 的,0~9,a ~f的数字,各自写成2进制,最多有4个2进制位就⾜够了, 比如 f 的二进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个二进制位的直接换算。

如:2进制的01101011,换成16进制:0x6b,16进制表示的时候前面加0x

 2. 原码,反码,补码

 原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。

反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。

补码:反码+1就得到补码。

3.移位操作符

>> 右移操作符

<<左移操作符

注:移位操作符的操作数只能是整数。

3.1 左移操作符

移位规则:左边抛弃、右边补0

3.2 右移操作符

移位规则:首先右移运算分两种:

1. 逻辑右移:左边用0填充,右边丢弃

2. 算术右移:左边用原该值的符号位填充,右边丢弃

4. 位操作符:&、|、^、~

&:按位与(利0)

|:按位或(利1)

^:按位异或

~:按位取反

5. 单目操作符

单目操作符有这些:!、++、--、&、*、+、-、~ 、sizeof、(类型)

6. 逗号表达式 

逗号表达式,从左向右依次执行。整个表达式的结果是最后⼀个表达式的结果。

注意:逗号表达式,前面表达式会影响后面表达式的结果,但是整个表达式的值取决于最后(最右边的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值