二进制中1的个数
来源:互联网 发布:mac for word审阅 编辑:程序博客网 时间:2024/06/07 01:11
题目描述:
输入一个整数,输出该数二进制中1的个数,其中负数用补码表示。
答案:
# -*- coding:utf-8 -*-class Solution: def NumberOf1(self, n): # write code here return sum([(n>>i & 1) for i in range(0,32)])解析:>>二进制位右移,&按位与(二进制位都为1时结果为1),1的二进制表示为[0000 0000 0000 0000 0000 0000 0000 0001],n的32位通过右移的方式每一位和1进行“与”操作,从而得到n的二进制中1的个数,并相加。(位操作是用补码计算的)
补充:
十进制转二进制
def original(number): a = [] value = number while value: b = value%2 a.insert(0,b) value = value//2 return a
负数原码转补码(a为原码)
def negative_complement(a): length = len(a) l = length while l < 8: a.insert(0,0) l+=1 c = [] for i in a: if i==1: c.append(0) elif i==0: c.append(1) c[7] = 1 return c
阅读全文
0 0
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 关于background-position的值为百分比的计算
- 初试lucene站内搜索
- Python学习笔记之发展史、简介以及特点
- Fiddler与Charles的特殊用途
- PHP5.6安装Redis扩展
- 二进制中1的个数
- 欢迎使用CSDN-markdown编辑器
- window下编译virtualbox源码 4.3.34
- 7.2对输入数据的异常处理
- Java自学笔记之struts2入门
- Java 共变数组和类型擦除
- 229. Majority Element II
- python进阶之系统编程的创建进程和进程进程间通信
- 欢迎使用CSDN-markdown编辑器