当前位置:网站首页>二进制中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;
}
}
边栏推荐
- LeetCode_139_word split
- RESTful 风格(详细介绍 + 案例实现)
- FreeRTOS创建任务--动态创建、静态创建
- PHP+MYSQL [Student Information Management System] (Minimalist Edition)
- Introduction to Scala Basic Syntax (3) Various Operators in Scala
- SQL Server 2014 installation tutorial (nanny-level graphic tutorial)
- js array recursively use
- Detailed explanation of network flow (what information can the flow network diagram generally reflect)
- Oracle update error operation single table rollback
- Closures in JS
猜你喜欢
随机推荐
js数组递归使用
路由-嵌套路由
【C语言】剖析函数递归(3)
How to use the database like tap water?|Tencent Cloud Database TDSQL-C
“二舅”火了,自媒体短视频“爆火”的基本要素,你知道吗?
水平垂直居中方式
[typescript] Use the RangePicker component in antd to implement time limit the previous year (365 days) of the current time
selenium chrome driver运行时的cannot determine loading status from target frame detached问题
如何通过DBeaver 连接 TDengine?
How to implement waterfall flow layout (what is waterfall flow layout)
pytorch模型转tensorflow模型
移动端适配,华为浏览器底色无法正常显示
[b01lers2020]Welcome to Earth-1
UAC绕过学习-总结
基于 WeihanLi.Npoi 实现excel导入时纯汉字的日期转换
80篇国产数据库实操文档汇总(含TiDB、达梦、openGauss等)
瀑布流式布局怎么实现(什么是瀑布流布局)
Good shooting js game source code
Oracle update error operation single table rollback
Name conventions in FreeRTOS