4.c语言的进制转换

十进制转换二进制的第二种方法
除以2取余数倒着写


101                 **** ***1
 50                 0*** ***0
 25                 00** ***1
 12                 000* ***0
  6                 0000 ***0
  3                 0000 0**1
  1                 0000 00*1
  0                 0000 0000


结果是0110 0101


根据前面的方法计算得到的二进制叫原码
计算机里实际记录的是二进制补码
非负数的原码就是补码


八进制和十六进制可以看成是二进制的简写方式
把一个二进制中的所有数位从右向左每三个数位分成
    一组,把每组转换成0到7之间的一个数字.把所有
转换结果按顺序写出来就是八进制表示方式


0110 0101    01 100 101    八进制表示方式是145
可以直接在程序中使用八进制表示数字,但是必须以
    0做开头
采用%o做占位符可以把一个数字的八进制表示形式
    打印在屏幕上


把二进制中所有数位从右向左每四个数位分成一组,
把每组转换成一个0到15之间的数字.把转换
结果按顺序写出来就是十六进制表示方式.
    如果某组的转换结果在10到15之间则应该使用
'a'到'f'之间的字符表示,'a'代表10,'f'代表15


0101 1010      十六进制表示方式是5a
可以在程序中使用十六进制表示数字,但是必须以0x
    做开头
采用%x或%X做占位符可以把一个数字的十六进制表示
   方式打印在屏幕上


二进制加一时应该把最右边的0变成1,把这个数位右边
   的所有1都变成0


负数二进制计算规则如下
1.首先计算出相反非负数的二进制
2.把第一步的计算结果中每个数位变成相反内容
    然后再加一


通过上述方法计算得到的就是负数二进制补码,可以
    直接记录在字节中


-41
41           0010 1001


1101 0110 + 1
-41的二进制补码1101 0111


采用上述方法不但可以根据非负数的二进制补码计算
    相反负数的二进制补码,同样可以根据负数的
二进制补码计算出相反非负数的二进制补码


负数的二进制补码最左边一位一定是1,非负数的
    二进制补码最左边一位一定是0
二进制补码最左边的数位叫做符号位
无符号类型没有符号位


每个有符号类型中都有一个特殊的补码,它的符号位是
    1,其它数位都是0.这个补码用来表示这个数据类型
中最小的负整数


把一个占地大的整数数据赋值给一个占地小的整数类型
    存储区时会保持二进制内容不变
把占地小的有符号整数类型数据赋值给占地大的整数
    类型存储区时扩充的所有二进制数位都应该填充
符号位


C语言里,可以作为操作符使用
可以在,的前后各写一个能当数字使用的内容就形成
    一个表达式
逗号操作符编写的表达式计算结果就是逗号后面的数字
逗号操作符的优先级比赋值操作符的优先级还要低


=代表赋值操作符,它可以把一个数字存储在一个存储区里
赋值操作符的左边必须是一个能代表存储区的内容(左值)
赋值操作符的右边必须是一个能当数字使用的内容
赋值操作符的优先级非常低,比逗号操作符的优先级高
赋值语句可以当作数字使用,这个数字就是赋值完成后
    左边存储区里的数字
可以在一个表达式中使用多个赋值操作符,优先计算右边
    的赋值操作符


只需要一个数字配合使用的操作符叫单目操作符
需要两个数字配合使用的操作符叫双目操作符
需要三个数字配合使用的操作符叫三目操作符


C语言中绝大多数双目操作符都可以和赋值操作符合并
    形成复合赋值操作符(例如+=, %=)
复合赋值操作符可以把变量内容和其他数字先按照双目
     操作符的规则进行计算,然后把计算结果存储在
变量中
复合赋值操作符也是一个双目操作符
它也要求左边是一个代表存储区的内容,右边是一个
    能当数字使用的内容
复合赋值操作符的优先级和赋值操作符的优先级一样低


自增(++)和自减(--)操作符可以把一个存储区里的内容
    加一或减一
这两个操作符都是单目操作符它们都要求和一个存储区
    配合使用
这两个操作符都有两种使用方法:前操作和后操作
前操作表达式当数字使用时是增减后的数字,后操作表达式
    当数字使用时是增减前的数字
可以认为前操作的优先级非常高而后操作的优先级非常低
不要在一个表达式里对同一个变量多次进行自增(自减)
计算,因为结果不确定


布尔类型只包含两个数值:真和假
C语言中使用整数0表示假,整数1表示真
所有整数都可以当布尔值使用,整数0当布尔值使用时
   是假,其他整数当布尔值使用时是真


逻辑表达式的计算结果只能是布尔类型
逻辑表达式需要使用逻辑操作符编写


!是一个单目逻辑操作符
这个操作符使用时要写在一个布尔数值的前面
这个操作符可以计算出它后面数值相反的布尔值,我们
    把它叫求反操作符


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


c语言中逻辑表达式里多个双目逻辑操作符之间有先后
    顺序,所以计算结果和数学结果可能不同


c语言中所有复杂逻辑表达式必须由多个简单逻辑表达式
    合并构成(最多只包含一个双目逻辑操作符的表达式
叫简单逻辑表达式)


与(&&)和或(||)也是双目逻辑操作符,他们可以把两个
    简单逻辑表达式合并成一个复杂逻辑表达式


使用与(&&)来合并两个简单逻辑表达式的时候只有当
    这两个简单逻辑表达式的结果都是真的时候合并
后的复杂逻辑表达式结果才是真,否则就是假
使用或(||)来合并两个逻辑表达式的时候只要两个
    简单逻辑表达式中有一个的计算结果是真则合并
后的复杂逻辑表达式计算结果就是真,否则就是假


算术操作符的优先级高于逻辑操作符


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


位操作符直接操作字节中的二进制数位
~是一个单目位操作符,它可以把一个数字中所有二进制
    数位变成相反内容(叫做按位求反)
使用的时候把这个操作符写在一个数字的前面


预习
    1.双目位操作符(按位与,按位或,按位异或,移位操作符)
    2.三目操作符
3.类型转换
4.分支


作业
    1.把用户在键盘上输入的一个1到127之间的数字
   转换成二进制并把结果打印在屏幕上
(要求采用今天讲的方法转换)
    2.编写逻辑表达式判断用户给定的年份是否是闰年
        假设year变量中记录了用户提供的年份
        如果一个年份可以被4整除但是不能被100整除
   则它是闰年
如果一个年份可以被400整除则它是闰年









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值