一、进制转换
1、二进制转十进制及十进制转二进制
1)、二进制转十进制
从右边开始,将每个位上的数字提出来,乘以2的位数-1次方,然后求和
2)、十进制转二进制
将十进制数值除以2,余数保留,再将商除以2,得到余数,一直循环,最后将所有的余数从后往前排列即为该十进制对应的二进制。
2、八进制转十进制及十进制转八进制
1)、八进制转十进制
从右边开始,将每个位上的数字提出来,乘以2的(位数-1)次方,然后求和
2)、十进制转八进制
将十进制数值除以8,余数保留,再将商除以8,得到余数,一直循环,最后将所有的余数从后往前排列再在首位加上一个0即为该十进制对应的八进制。
3、十六进制转十进制及十进制转十六进制
1)、十六进制转十进制
从右边开始,将每个位上的数字提出来,乘以16的位数-1次方,然后求和
2)、十进制转十六进制
将十进制数值除以16,余数保留,再将商除以16,得到余数,一直循环,最后将所有的余数从后往前排列再在首位加上0x即为该十进制对应的十六进制。
4、二进制转八进制及八进制转二进制
1)、二进制转八进
从二进制的右边开始,每三位求其十进制,将得到的所有十进制组合再在首位加上一个0得到的就是对应的八进制。
2)、八进制转二进制
从最右边开始,将每个数字换算成对应的二进制,然后将得到的二进制组合就是对应的二进制。
5、二进制转十六进制及十六进制转二进制
1)、二进制转十六进制
从二进制的右边开始,每四位求其十进制,将得到的所有十进制组合再在首位加上0x得到的就是对应的十六进制。
2)、十六进制转二进制
从最右边开始,将每个数字换算成对应的二进制,然后将得到的二进制组合就是对应的二进制。
二、位运算
1、原码、反码、补码
1)、正数的原码,反码和补码都一样
2)、二进制的最高位是符号位,正数是0,负数是1
1 ==》 0000 0001 -1 ==》 1000 0001
3)、负数的反码=符号位不变,其他的所有取法、反(1->0,0->1)
3:原码:0000 0101 反码:1111 1010 补码:1111 1011
4)、负数的补码=它的反码+1
5)、0的反码和补码都是0
6)、计算机在运算的时候,都是以补码来进行。
2、位运算符和移位运算符
1)、位运算符
按位与&:两位全是1,结果才为1,否则为0;
安慰或|:只要与一个1,结果即为1,否则为0;
按位异或^:两个不一样结果才为1(即一个为1,一个为0)才为1,否则为0
2)、位移运算符
>>右移、<<左移
右移 >>:低位溢出时,符号位不变,并用符号位补溢出的高位
c := 1>>2 // 0000 0001 >> 0000 0000 ==》 0
左移 <<: 符号位不变,低位补0
c := 1<<2 // 0000 0001 << 0000 0100 ==》4