day04 逻辑操作符& | ^

来源:互联网 发布:掌阅软件下载 编辑:程序博客网 时间:2024/06/05 12:42
把二进制数字从右向左每三个数位分成一组,
    每组用一个0到7之间的数字替换,这个
    替换结果叫做八进制表示方式

0110 1011     01 101 011    153(八进制)

可以在程序中直接使用八进制方式表示数字,
    这个时候数字必须以0做开头
在printf函数调用语句里使用%o做占位符可以把
    数字的八进制表示方式显示在屏幕上

把二进制数字从右向左每四个数位分成一组,
    每组用一个字符替换(用a到f之间的字母
    替换10到15之间的数字),这个替换结果
    叫做数字的十六进制表示方式

1100 1011           cb(十六进制)

可以在程序中直接用十六进制方式表示数字,
    这个时候数字必须以0x做开头
可以使用%x或%X做占位符把数字的十六进制
   方式显示在屏幕上
显示结果里不包含0x开头
用%x做占位符的时候显示结果里所有字符都是
    小写的
用%X做占位符的时候显示结果里所有字符都是
    大写的

操作符用来表示对数字的处理规则
根据操作符所需要配合的数字个数把操作符分成
    单目操作符,双目操作符和三目操作符

加减乘除(+,-,*,/)都是双目操作符
如果参与除法计算的两个数字都是整数则计算
    结果保留整数部分

C语言里用%表示取余操作

赋值操作符用=表示
赋值语句可以当作数字使用,这个数字就是赋值
    结束后存储区里的内容
可以在一条语句里使用多个赋值操作符,这个
    时候优先计算右边的操作符

绝大多数双目操作符可以和赋值操作符合并
    成复合赋值操作符,例如+=,*=等
复合赋值操作符会把双目操作符的计算结果记录
   到左边的存储区里
复合赋值操作符的优先级和赋值操作符的优先级
   一样低

自增操作符(++)和自减操作符(--)都是单目
    操作符
它们都只能和存储区配合使用,它们可以把
    存储区的内容加一或者减一
它们各自有两种使用方法,一种是前操作
   (操作符写在存储区前面),另外一种
    是后操作(操作符写在存储区后面)
使用自增(自减)操作符编写的表达式也可以
    当作数字使用,前操作当作数字使用的时候
    是修改后的数字,后操作当数字使用的时候
    是修改前的数字
不要在一条语句里对同一个变量多次进行自增
    或自减计算,因为结果不确定

逻辑操作符用来编写逻辑表达式
逻辑表达式的计算结果只能是布尔值

!是一个单目逻辑操作符,它可以根据一个布尔值
    计算出相反的布尔值
它代表的操作叫做求反

双目逻辑操作符包括==(等于),!=(不等于),
    >(大于),<(小于),>=(大于等于)和
    <=(小于等于)

最多只包含一个双目逻辑操作符的表达式
   叫简单逻辑表达式,简单逻辑表达式
   在数学里和计算机里的结果一定一样

C语言里包含多个双目逻辑操作符的表达式
    必须首先拆分成多个简单逻辑表达式
    然后再合并

可以采用与(&&)和或(||)这两个双目逻辑
    操作符把两个逻辑表达式合并

只要两个逻辑表达式里有一个的结果是假则
    用与(&&)合并后结果就是假
只要两个逻辑表达式里有一个的结果是真则
    用或(||)合并后结果就是真

与(&&)和或(||)都具有短路特征(如果前一个
    逻辑表达式的结果能决定整个逻辑表达式
    的结果则后一个逻辑表达式不计算)

位操作符可以直接操作二进制数位

~是一个单目位操作符
这个符号可以根据一个数字计算处另外一个
   数字,这两个数字所有二进制数位的
   内容都不一样
它所代表的操作叫按位求反

双目位操作符包括按位与(&),按位或(|)和
    按位异或(^)
它们都可以把两个数字对应数位上的内容做
    计算

按位与可以把对应数位的内容做与计算
只要一个数位的内容是0则计算结果就是0

    3       0000 0011
&   5       0000 0101
            0000 0001

按位或可以把两个数字对应数位的内容做或计算
只要有一个数位的内容是1则计算结果就是1

    3       0000 0011
|   5       0000 0101
            0000 0111

按位异或可以把两个数字对应数位的内容做
   异或计算
如果两个数位的内容一样则结果是0,否则
    结果是1

    3       0000 0011
^   5       0000 0101
            0000 0110

移位操作可以把一个数字里的所有二进制数位
   内容统一向左或向右移动n个位置
>>表示向右移位操作
<<表示向左移位操作
它们都是双目位操作符
操作符左边的数字是将要进行移位操作的数字
操作符右边的数字是将要移动的位数
移位操作相当于把数字中每个二进制数位的内容
    换一个数位放

左移的时候右边空出来的位置上一定填充0
无符号类型数字右移的时候左边空出来的位置上
    一定填充0,有符号类型数字右移的时候
    左边空出来的位置上填充符号位内容

一般情况下把数字左移n位相当于乘以2的
    n次方,右移n位相当于除以2的n次方

位操作符不会修改任何现有存储区的内容

&也可以作为单目操作符使用,这个时候
   它可以用来计算一个存储区的地址
使用的时候这个符号应该写在一个存储区的前面
可以使用%p做占位符把地址数据显示在屏幕上
我们的计算机里所有地址都是由32个二进制
    数位构成的

*也可以作为单目操作符使用,这个时候
   它可以根据一个地址找到对应的存储区
使用的时候要写在一个地址前面

三目操作符可以从两个计算规则里选择一个
   进行计算
三目操作符的格式如下
布尔值 ? 公式一 : 公式二
如果布尔值为真就用公式一进行计算,否则
   用公式二进行计算
不要在问号后面使用赋值操作符

预习:
   1.类型转换
   2.分支(if分支和switch...case分支)
   3.for循环
原创粉丝点击