位运算与小数的二进制表示

C语言提供了六种位运算符号;按位与&,按位或|,按位异或^,左移及右移。

&:参与运算的两个数对应二进制位相与,均为1时,结果位为1,否则为0;参与运算的数以补码的方式出现。

|:参与运算的两个数对应二进制位相或,只要两个二进位有一个为1时,结果位1,参与运算的数以补码的方式出现。

^;参与运算的两个数对应二进制位相异或,当对应的二进位相异时,结果为1,参与运算的数以补码的方式出现。

<<;把符号左边的运算数的各二进制位全部左移若干位,高位丢弃,低位补零;

>>;把符号you边的运算数的各二进制位全部右移若干位,对于有符号数,右移时符号位也移动,注意正数,最高位补零,负数,符号位为1;

小数的二进制表示

整数和小数分别转换.
整数除以2,商继续除以2,得到0为止,将余数逆序排列.
22 / 2 11 余0
11/2 5 余 1
5 /2 2 余 1
2 /2 1 余 0
1 /2 0 余 1
所以22的二进制是10110
小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列.
0.8125x2=1.625 取整1,小数部分是0.625
0.625x2=1.25 取整1,小数部分是0.25
0.25x2=0.5 取整0,小数部分是0.5
0.5x2=1.0 取整1,小数部分是0,结束
所以0.8125的二进制是0.1101
十进制22.8125等于二进制10110.1101

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值