博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二进制中1的个数
阅读量:3935 次
发布时间:2019-05-23

本文共 680 字,大约阅读时间需要 2 分钟。

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

想法1:输入一个int型整数,强转成unsigned int,将这个数%2,判断是否是1,计数,循环.

class Solution {
public: int NumberOf1(int n) {
int num = 0; int a = 0; unsigned int b; b = n; while(b > 0){
a = b % 2; b = b / 2; if(a){
num ++; } } return num; }};

想法2: 将这个数 -1 与齐本身按位取反.不等于一继续循环,计数.

public class Solution {
public int NumberOf1(int n) {
int count = 0; while(n!= 0){
count++; n = n & (n - 1); } return count; } }

转载地址:http://bkrgn.baihongyu.com/

你可能感兴趣的文章
HTTP抓包工具Fiddler---记录博客地址
查看>>
Java问题排查常用linux命令
查看>>
线上应用故障排查之一:高CPU占用
查看>>
线上应用故障排查之二:高内存占用
查看>>
JNDI全面总结--1.spring-DB配置
查看>>
配置数据库连接池之JNDI的方式,tomcat
查看>>
JDNI、dbcp、c3p0、jdbc简单总结--整理
查看>>
ThreadLocal--线程独自共享变量
查看>>
Tomcat 系统架构--工作原理
查看>>
Tomcat 系统架构--设计模式
查看>>
JAVA设计模式之门面模式(外观模式)
查看>>
Java设计模式之观察者模式
查看>>
Java设计模式之责任链模式、职责链模式
查看>>
java设计模式之代理模式,java动态代理
查看>>
JAVA设计模式初探之装饰者模式
查看>>
HashSet的实现原理
查看>>
HashMap实现原理
查看>>
ArrayList和Vector的扩容机制
查看>>
java自带线程池和队列详细讲解
查看>>
ActiveMQ学习(一)——MQ的基本概念
查看>>