当前位置:网站首页>二进制中1的个数
二进制中1的个数
2022-08-02 13:04:00 【龙崎流河】
题目:
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。
提示:
请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。
在 Java 中,编译器使用 二进制补码 记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -3。
示例一:
输入:n = 11 (控制台输入 00000000000000000000000000001011)
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。
示例二:
输入:n = 128 (控制台输入 00000000000000000000000010000000)
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 ‘1’。
示例三:
输入:n = 4294967293 (控制台输入 11111111111111111111111111111101,部分语言中 n = -3)
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 ‘1’。
分析:
只需要记住一个公式n = n & (n-1)可以消除掉二进制数中最右边的1。
代码:
public class HammingWeight {
public int hammingWeight(int n) {
int sum = 0;
while (n != 0) {
n = n & (n-1);
sum++;
}
return sum;
}
}

边栏推荐
- 节省50%成本!京东云重磅发布新一代混合CDN产品
- 【C语言】细品分支结构——if-else语句
- Flashback Technology of Oracle Database
- TFRecord简介,原理分析,代码实现?[通俗易懂]
- uniapp/小程序 onload方法每次打开页面都执行解读
- Introduction to Scala Basic Syntax (3) Various Operators in Scala
- 短视频美食自媒体怎么做?5步教你快速上手
- selenium chrome driver运行时的cannot determine loading status from target frame detached问题
- RESTful 风格(详细介绍 + 案例实现)
- 【C语言】虐打循环练习题(2)
猜你喜欢
随机推荐
Taurus.MVC V3.0.3 microservice open source framework released: Make the evolution of .NET architecture easier in large concurrency.
自媒体创作怎样提高原创度,打造爆款作品?
Ribbon负载均衡的深度分析和使用
svg balloon rises explosion js special effect
FreeRTOS中名称规范
[b01lers2020]Welcome to Earth-1
LeetCode_377_Combination Sum IV
【C语言】手把手带你写游戏 —— 猜数字
基于 WeihanLi.Npoi 实现excel导入时纯汉字的日期转换
Name conventions in FreeRTOS
如何关闭开启硬件加速[通俗易懂]
Win11怎么修改关机界面颜色?Win11修改关机界面颜色的方法
photo-sphere-viewer Chinese documentation
路由-嵌套路由
“二舅”火了,自媒体短视频“爆火”的基本要素,你知道吗?
为什么IDEA连接mysql Unable to resolve table 编译报错但是可以运行
LeetCode_139_word split
高效代码静态测试工具Klocwork 2022.2——Portal全新升级、支持RLM
How to turn off hardware acceleration [easy to understand]
定了!2022世界VR产业大会将继续在南昌召开









