linux环境下C编程(四)

不可以在二进制表示形式中使用负号
负数二进制的计算方法是把整数的二进制按位求反再加一
采用上述方法计算出的二进制就是补码


每个有负号数据类型中首位为1其他位为0表示这个数据类型的最小数


采用刚才的方法同样可以根据负数的二进制补码计算出相反数的二进制补码


任何有负号的二进制数字最左边的数位叫做符号位 可以根据它得到数字的正负情况 
符号位是1表示负数 符号位为0表示正数
无符号数字没有符号位
不能直接把符号位替换成正负号


程序中对数据的所有处理工作最终都会转换成二进制数位进行操作
整数类型之间赋值会保持二进制不变
有符号整数类型数据扩展时会在前面填充数字的符号位
,(逗号)是一个操作符 可以把多个表达式连接起来成为一个表达式,表达式的结果是其中最后一个
表达式的计算结果,这个操作符的优先级非常低
赋值操作符编写的语句也是一个表达式
赋值语句的结果就是赋值的数值
一条语句中如果有多个赋值操作符则先执行右边的然后执行左边的
只需要一个数字配合就可以使用的操作符叫做单目操作符
需要两个数字配合的叫做双目运算符
需要三个数字配合的叫做三目运算符
大多数双目运算符都可以和赋值运算符合并成复合赋值操作符 如+= *=
复合赋值运算符可以对变量中的数据进行处理并把处理结果直接记录在原有变量中
复合赋值操作符都是双目运算符
复合赋值操作符也要求左边是左值,右边是一个能充当数字的东西 
复合赋值操作符的优先级和赋值操作符一样
自增操作符 ++ 自减操作符 -- 可以对变量中的数字加一减一
这两个操作符都需要和一个变量配合使用
这两个操作符有前操作和后操作之分 前操作的优先级非常高 后操作的优先级非常低
不要在同一语句中对同一变量多次做自增自减计算


布尔类型包含真和假 为了使用布尔类型需要包含stdbool.h文件
在计算机里真用1表示假用0表示
C语言中所有整数都可以当布尔值使用,整数0表示假其它都表示真
逻辑表达式的计算结果只能是真或者假
逻辑操作符用来编写逻辑表达式
双目逻辑操作符包括 == != > < >= <=
!是单目逻辑运算符表示对一个布尔值取反
算术操作元酸腐优先级比逻辑运算符高


&&和||这两个逻辑操作符用来编写复杂的逻辑表达式
使用&&合并两个简单逻辑表达式 都为真时才为真
使用||合并两个简单逻辑表达式 其中有一个为真则表达式才为真
&&和||都有短路特征
如果根据前边的简单表达式可以判断整个表达式的结果后面的简单表达式就不计算了
位操作符直接对二进制数位进行操作
双目操作符包括 按位与& 按位或| 按位异或^ 
双目位操作符都首先把参与计算数字的二进制形式写出来然后把对应数位上的数字进行计算


按位与计算时对应位上只要有一个0则计算结果为0
按位与可以把某个二进制位清0


任何数位和0按位与结果为0
任何数位和1按位与结果不变


按位或计算中对应数位上只要有一个1则结果为1
按位或可以把某个位置置1
任何数位与0按位或结果不变
任何数位与1按位或结果为1


按位异或计算过程中对应位上的内容一样结果为0 不一样为1
按位异或可以把某个位求反


任何数位和0异或结果不变
任何数位和1异或结果改变


练习:
1、编写逻辑表达式判断用户给定的年份是不是闰年
能被4整除并且不能被100整除的年份是闰年
能倍400整除的年份也是闰年
2、使用一个char类型变量中最右边的三个二进制数位控制红绿灯 最右边控制绿灯
中间黄等 左边红灯 1是亮0是灭
默认点亮红灯




























































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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值