2进制和10进制的转换 以及C#中的位运算符

10进制转2进制

例:10/2=5...0 5/2=2...1 2/2=1...0 1/2=0...1

余数从右往左 1010

原码:0000 1010 

8位2进制 最前面一位0是正数,1是负数 超过8位使用16位2进制

 

2进制转10进制(从右往左乘以2的0次方到n次方,值相加)

例:0 0 0 0 1 0 1 0

      128 64 32 16 8 4 2 1 上面乘以下面

                                  8 2 最下面相加=10

 

原码转反码 正数不变 负数第一位不变剩余取反

反码转补码 正数不变 负数+1

例:-10

原码:1 0 0 0 1 0 1 0

反码:1 1 1 1 0 1 0 1

补码:1 1 1 1 0 1 1 0

补码转原码:

正数的补码反码都是一样的

代表负的第一个数不变其他数取反再加1

1 0 0 0 1 0 0 1 +1

1 0 0 0 1 0 1 0 =10进制的 -1

 

~按位取反 工作原理

a=10 b=~a

0000 1010 这是a的原码

1111 0101这是取反后b的补码

1000 1011补码转b的原码   

转换成10进制等于-11 

 

<<向左位移

a=10 b=3

c=a<<b

公式:c=a乘2的b次方

C= 10×2的3次方=80

 

0000 1010

0101 0000  

 

>>向右位移

公式:c=a÷2的b次方

C=10÷2的3次方=1 保留正数 不够1算0

 

0000 1010

0000 0001

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值