二进制的一些操作
Posted cocotang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制的一些操作相关的知识,希望对你有一定的参考价值。
<1>二进制与十进制互转
十进制转二进制
例子:13 -> 1101
13/2=6余1
6/2=3余0
3/2=1余1
1/2=0余1
那么13用二进制表示为 1101 (倒序排列余数 不足的用0补齐 00001101)
二进制转十进制
例子:1101 -> 13 可以在C#里面声明为 int num = 0b1101 或者 string num = "00001101"
补齐00001101
13 = 0*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 0+0+0+0 +8+4+0+1
<2>位运算
~ 逻辑非运算 00001101 -> 11110010 即 1取0 0取1
& 逻辑与运算 00001101&00000011 -> 00000001 即1&1取1 1&0取0 0&0取0
| 逻辑或运算 00001101&00000011 -> 00001111 即1&1取1 1&0取1 0&0取0
^ 逻辑异或运算 00001101&00000011 -> 00001110 即1&1取0 1&0取1 0&0取0 相同取0 不同取1
<< 左移运算 00001101 -> 01101000 即 把每一位向左移3位 等于把原始数字*2^3 = 13 * 2^3
>> 右移运算 00001101 -> 00000001即 把每一位向右移3位 等于把原始数字/2^3 = 13 / 2^3
以上是关于二进制的一些操作的主要内容,如果未能解决你的问题,请参考以下文章