二进制八进制十六进制
二进制中1的个数
http://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8
十进制整数转二进制
整数除2 取余 然后倒排 直到商为0
十进制小数转二进制
小数乘2 然后取整 继续用小数部分乘2 直到小数部分为0
十进制转 其他进制 都可以 用上述方法,几进制就除以/乘几
其中十进制转十六进制需要注意,因为十六进制包括A-F需要建立一个数组来获取。
位运算是针对整数的,尤其python
假设一个二进制数3位是abc,变为十进制数就是 x=(a2+b)2+c .
反过来就是 x%2=c, (x/2)%2=b, [(x/2)/2]%=a , 所得二进制数就为abc
转为10进制 通过int int('10',8)第二个参数 写清楚 前面字符串是几进制数就可以。
转为二进制 bin()一个参数
转为八进制 oct()一个参数
转为十六进制hex()一个参数
八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。
十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
八转十六中间通过转成二进制来进行转换。