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

来源:互联网 发布:无主之地前传改枪软件 编辑:程序博客网 时间:2024/05/01 18:11

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

0 0
原创粉丝点击