算法讲解003【入门】二进制和位运算
TF源能量
编辑于 2024年03月31日 19:07

二进制

-1表示:

1、先看+1表示 0001

2、再-1 0000

3、取反 1111

反推:

1000:

符号位为1,表示负数

然后000取反111

然后+1 当做无符号状态 1000表示的是8

所以1000表示-8

0b可以直接定义二进制的数据

十六进制

0x开头代表十六进制,二进制转换为十六进制,4位表示十六进制的1位

相反数是任何原来数取反+1

负数的最小值找不到相反数

整数最小值取绝对值还是自己

取反符号~

<< 左移 右侧补零

>> 右移 左侧用符号位补

>>> 右移 左侧补零

非负数 << 1 等于*2

非负数 << 2 等于*4

非负数 << i 等于*2的i次方

非负数 >> i 等于除以2的i次方

^异或 不同的是1,相同的是0

位运算 | & ^ ~

逻辑或与 || &&,会断路,效率高

为什么这么设计二进制

为了不管数字符号都统一加法逻辑

位运算中加法可以实现其他的-*/逻辑

打印二进制函数逻辑

num &(1 << i) ==0 ?0:1

注意溢出问题