C语言2--进制和运算符

本文详细介绍了C语言中进制转换的原理和方法,包括二进制、八进制和十六进制之间的转换,以及如何在C语言中表示和使用这些进制。此外,还讲解了C语言中的各种运算符,如算数、位运算符,以及它们的分类、优先级和结合性。同时,文章也提到了位运算在构造特定二进制数中的应用。
摘要由CSDN通过智能技术生成

进制
计算机使用二进制来存储和运算数据
二进制数位上的数字只能是0和1
一个字节对应8位二进制位

进制只是数字的一种表示形式,使用二进制/十进制不影响数字的值

1.二进制和十进制的转换
整数:
(1)二进制转十进制
二进制数字的每个数位有一个编号,最右边的编号是0,向左依次递增。
二进制转换成十进制的结果就是将每个数位上的1乘以2的编号次方,再将所有的结果相加。
12345 = 5 X 10^0 + 4 X 10^1 + 3 X 10^2 + 2 X 10^3 + 1 X 10^4

1010111 = 2^0 + 2^1 + 2^2 + 2^4 + 2^6
= 1 + 2 + 4 + 16 + 64
= 87

01110101 = 2^0 + 2^2 + 2^4 +2^5 +2^6
= 1 + 4 + 16 + 32 + 64
= 117

注:二进制数字中相邻的1之间有倍数关系,左边的1是右边的1的两倍

(2)十进制转二进制
方法1:
将十进制的数字拆分成多个非重复的2的整数次方之和,再将拆分的结果单独转换成二进制,最后将所有的结果合并
79 = 64 + 8 + 4 + 2 + 1
= 2^6 + 2^3 + 2^2 + 2^1 + 2^0
= 1000000 + 1000 + 100 + 10 + 1
= 1001111

方法2:
将十进制的数字不停地除以2,保留余数,直到商为0,然后将余数倒着写,得到的结果就是二进制转换的结果
余数
103 1
51 1
25 1
12 0
6 0
3 1
1 1
0 -----------停止

转换结果为:1100111

175 1
87 1
43 1
21 1
10 0
5 1
2 0
1 1
0 -----------停止

转换结果为:10101111

补充:
使用以上方法的得到的是二进制的原码
计算机存储整数实际上存储的是二进制的补码
非负数的补码就是原码,负数的补码是他相反正数的原码取反加1得到
(计算机记录有符号的数据使用最高位表示符号位,0为正数,1为负数)
-103
0110 0111 取反-----> 1001 1000 加1-----> 1001 1001

小数:
(1)二进制转十进制
整数部分直接使用上面的整数转换方法,小数部分每个数位也有一个编号,最左边的小数数位的编号是-1,向右依次递减
小数二进制转十进制的结果就是将每个数位上的1乘以2的编号次方,再将左右的结果相加
1011011.1011 = 2^6 + 2^4 + 2^3 + 2^1 + 2^0 + 2^-1 + 2^-3 + 2^-4
= 64 + 16 + 8 +

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值