操作符之那些你不知道的冷知识----移位操作符与位操作符

一:在正式介绍之前首先补充一些知识

1.整数的二进制表示形式:原码(用来打印整数),反码,补码(整数在内存中存储的形式)

注:正整数的原码,反码,补码是相同的,负整数的原码,反码,补码需要计算

2.计算机能处理的为二进制信息(0/1组成)

3.一个十进制的整数转化为二进制数的方法:除2取余法

:十进制的15转化为二进制的数字为操作符之那些你不知道的冷知识----移位操作符与位操作符_第1张图片

4.一个二进制数的整数转化为十进制数的方法:各位加权系数之和

如:二进制的1111转化为十进制的数为

 操作符之那些你不知道的冷知识----移位操作符与位操作符_第2张图片

 5.一个字节=8bit位        一个整形int的字节数为4=32bit 位   每一个bit位对应一个0(1)的数

二:求一个整数的原码,反码,补码

如:写出十进制数15的原码,反码,补码操作符之那些你不知道的冷知识----移位操作符与位操作符_第3张图片

 如:写出十进制数-15的原码,反码,补码操作符之那些你不知道的冷知识----移位操作符与位操作符_第4张图片 

三:位操作符----->&(按二进制位与),|(按二进制位或),^(按二进制位亦或)

注:位操作符是对整数补码二进制序列进行操作

1.&(按二进制位与) ---->计算方法为:两整数对应二进制有0则为0,两个同时为1则为1

举例如下:操作符之那些你不知道的冷知识----移位操作符与位操作符_第5张图片

2. |(按二进制位或)---->计算方法为:两整数对应二进制有1则为1,两个同时为0则为0

举例如下:操作符之那些你不知道的冷知识----移位操作符与位操作符_第6张图片

 3. ^(按二进制位亦或)---->计算方法为:两整数对应二进制相同为0,相异为1

举例如下:操作符之那些你不知道的冷知识----移位操作符与位操作符_第7张图片

4.^的一个特殊应用:可以在不创建第三个变量的条件下完成量属的交换

如:操作符之那些你不知道的冷知识----移位操作符与位操作符_第8张图片

补充:操作符之那些你不知道的冷知识----移位操作符与位操作符_第9张图片 

四:移位操作符 --->左移<<,右移>>

注:移动的为整数补码二进制序列

1.左移<<   计算方法为:左边丢弃,右边补0

如:操作符之那些你不知道的冷知识----移位操作符与位操作符_第10张图片

操作符之那些你不知道的冷知识----移位操作符与位操作符_第11张图片

2.右移>>  计算方法为:右边丢弃,左边补原来的符号位(正整数补0,负整数补1)

如:操作符之那些你不知道的冷知识----移位操作符与位操作符_第12张图片

操作符之那些你不知道的冷知识----移位操作符与位操作符_第13张图片

五: ~(按位取反操作符)

操作对象:对应整数补码二进制位取反(1变0/0变1)

如:操作符之那些你不知道的冷知识----移位操作符与位操作符_第14张图片

六:本期分享结束,谢谢观看 

你可能感兴趣的:(C,c语言,算法)