二进制中1的个数(进制转换,补码反码)

求一个数的二进制中1的个数(补码形式下) 对于求一个数的二进制补码中1的个数,本文中的代码都通过写一个函数实现。     一共有三种实现方法。 1、无法处理负数的一种代码 #define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_WARNINGS 1 #include #include int geshu(int a) { int count = 0; while (a 阅读详情

1、题目

在这里插入图片描述

2、解法

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

利用了位运算符&,相同位置都为1,等于1,因为还有负数,所以不用右移运算符,会造成死循环,也就是结果一直是-1。

3、知识点

1、原码、反码、补码的概念 添加链接描述
2、负数移位运算
添加链接描述
添加链接描述

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册 Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。 阅读详情

相关推荐

【SIP基础】SIP协议基本呼叫流程

SIP呼叫流程下图显示了一个SIP会话的基本呼叫流程。 下面是上述呼叫流程的详细解释: Alice发送INVITE请求到代理服务器,INVITE请求负责发起会话。 代理服务器立即发送Trying 100给请求者(Alice),表示试图响应INVITE请求,以防止重传该INVITE请求。 代理服务器搜索Bob所在位置服务器的地址,得到的地址后,将转发INVITE请求到Bob。 此后,Bob回应180

VVSIP官网博客 1万+

-1的二进制

关于负数的二进制问题 负数我们用的是正数的补码 比如1 是0000 0001 而-1则为1111 1111 2 0000 0010 -2 1111 1110

qq_41174677的博客 3万+

ISP Tuning实战:从零开始调校相机传感器的完整流程(附避坑指南)

本文详细介绍了ISP Tuning的完整实战流程,即如何从零开始调校相机传感器以优化成像质量。内容涵盖从黑电平校正、镜头阴影校正等基础标定,到自动曝光、伽马校正、色彩校正等核心画质调校,再到降噪与锐化的平衡策略,并提供了关键的避坑指南。掌握ISP Tuning是提升相机传感器性能、实现从‘能用’到‘好用’的关键技术。

weixin_32098457的博客 196

二进制数的反码和补码

在大学的学习中,一开始自认为已经学会了反码与补码,但在看到多种表述之后,反而是越来越乱,疑惑越来越多,即使记住了之后又会混淆,今天又看到了一次,为了防止以后再次忘记,写这篇博客记录一下(记录过程依据《数字电子技术(第十版)》,中英文结合) 首先从最一般的意义上,分别说一下二进制的反码和补码: 1、反码 1’s complement 把所有的0变为1,所有的1变为0。 如: 10110010 B...

Runner1st的博客 1万+

射频功率放大器设计实战:从理论到Layout的全流程解析

本文以一款40W、960MHz LDMOS功率放大器为例,系统解析了从理论分析、仿真设计到版图实现的射频功率放大器设计全流程。内容涵盖AB类放大器选型、核心指标定义、稳定性分析、Load-Pull/源牵引仿真、史密斯圆图匹配、偏置网络设计,以及最终的谐波平衡仿真与版图电磁验证,为工程师提供了一套从理论到实践的完整设计方法论。

weixin_29266007的博客 252

手把手教你解决Ubuntu 20.04虚拟机桥接模式下的网络问题:DHCP与静态IP配置全指南

本文详细解析了Ubuntu 20.04虚拟机在桥接模式下的网络配置问题,包括DHCP与静态IP的配置方法及常见故障排查技巧。通过深入讲解桥接模式原理和提供实战操作指南,帮助用户解决无法访问外网、ping不通等典型网络问题,实现虚拟机与物理网络的无缝连接。

weixin_29256771的博客 543

剑指offer——二进制中1的个数(原码、反码、补码、移位)

剑指offer——二进制中1的个数(原码、反码、补码、移位) 1 知识储备 1.1 原码、反码、补码,计算机中负数的表示 1.1.1 源码 原码: 将一个整数,转换成二进制,就是其原码。 如单字节的5的原码为:0000 0101;-5的原码为1000 0101。 1.1.2 反码  反码:  正数的反码就是其原码;  负数的反码是将原码中,除符号位以外,每一位取反。 如单字节的...

star_yang的博客 890

TMC步进电机驱动stealthChop

经过九九八十一难,芯片手册拜读了好多遍,找了好多资料,问了好多人使用TMC2660驱动步进电机终于成功了。最后的问题居然是硬件把管脚画错了,然后我又没有检查,哭。。。

那可真是太开心了的博客 4490

【牛客剑指offer刷题】:Python:11.二进制中1的个数

二进制中1的个数 时间限制:1秒 空间限制:32768K 热度指数:365253 算法知识视频讲解 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解析 正数的补码 = 原码 负数的补码 = {原码符号位不变} + {数值位按位取反后+1} or = {原码符号位不变} + {数值位从右边数第一个1及其右边的0保持不变,左边安位取反} 以十进制整数+97和-97为...

Jack_Kuo的博客 543

【ROS2实体机械臂驱动】封装珞石ROS2驱动库ros2_rokae_driver_lib

这一篇文章将封装为,和之前一篇文章《ROS2 编译、打包、封装三方库(Knet为例)_ros插件编译成静态库-优快云博客》写的封装,区别在于优化了cmake dependencies和include等属性和宏定义,同时对于多库内部依赖的情况做了特定处理,更加方便外部调用。其中珞石的编译参考博主之前的文章rokae xCoreSDK C++测试使用,这里不再做赘述。通过这篇文章对于如何打包机械臂厂家提供的三方库做了进一步说明,方便用于不同机械臂厂家的三方库封装调用。!!

机器人梦想家 Bing Lee 1400

Python爬虫:爬取拼多多平台商品信息、销量、价格等数据

在本篇博客中,我们将深入探讨如何使用Python爬虫技术爬取拼多多平台的商品信息,包括商品的标题、销量、价格等详细数据。拼多多的商品页面通常是分页展示的,因此我们需要遍历多个页面,获取所有商品的信息。每个商品在拼多多平台上都有一个唯一的商品ID,我们可以通过该ID访问商品页面。通过以上的技术方案和代码示例,你已经掌握了如何使用Python爬虫获取拼多多平台上的商品信息、销量、价格等数据。等技术,解决拼多多平台的反爬虫机制,成功抓取我们所需的商品数据。,我们能够应对拼多多的反爬虫机制,稳定地获取到商品数据。

2201_76125261的博客 3657

Python统计二进制中1的个数

统计二进制中1的个数应用案例涉及知识点讲解进制介绍进制转换原码、反码、补码介绍位运算规则解法1思路分析代码实现解法2思路分析代码实现 应用案例 现有一个整数,将该整数转化为二进制形式,并统计二进制中1的个数(如果是负数,按补码统计1的个数) 涉及知识点讲解 进制介绍 在计算机中,有四种进制,分别是 2进制、8进制、10进制和16进制。具体内容如下所示: 进制类型 组成 代码格式 2...

Lgqiann的博客 6874

Seurat-SCTransform与harmony整合学习

源于R tips:Seurat之SCTransform方法原理 (qq.com)Seurat对象在经过SCTransform处理后会增加一个SCT的Assay,里面的scaled.data就是经过scale之后的pearson residual值,这个值是用于后续降维聚类分析使用的。

hx2024的博客 2332

剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)...

1. 题目描述   输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 2. 思路和方法   使用移位(<<)和 “| & !”操作来实现。1的二进制是:前面都是0,最后一位为1。每次向左移位一下,使得flag的二进制表示中始终只有一个位为1,每次与n做位与操作,这样就相当于逐个检测n的每一位是否是1。unsigned int flag =...

AMY100727的博客 225

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

详解操作符

a=a1^b(此时这个表达式中的b是上一个表达式(b=a1^b)结果的b),在第二个表达式被执行的时候,b的值已经被a的值所替代,最终实现两个整数的交换。在大多数的编译器里面都是算术右移,也就是右边抛弃,左边用符号位填补,在上图中,红色的0表示的是填补上的符号位,红色的1表示被抛弃的。八进制:0,1,2,3,4,5,6,7 十六进制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。•赋值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、<<= 、>>= 、&= 、|= 、^=

2302_80761497的博客 1235

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

11.剑指offer-二进制中1的个数(python)

11.剑指offer-二进制中1的个数(python) 本题知识点: 进制转化 补码反码原码 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 00000000000000...

weixin_39883139的博客 312

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

解密——二进制的奥秘

8进制的数字每⼀位是0~7的,0~7的数字,各自写成2进制,最多有3个2进制位就足够了,比如7的2进制是111,所以在2进制转8进制数的时候,

2402_82668782的博客 1891

C语言入门(十三):操作符详解(1)

16进制的数字每⼀位是0~9,a~f的,0~9,a~f的数字,各⾃写成2进制,最多有4个2进制位就⾜够了, ⽐如f的⼆进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个⼆进制位的直接换算。8进制的数字每⼀位是0~7的,0~7的数字,各⾃写成2进制,最多有3个2进制位就⾜够了,⽐如7的⼆ 进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算⼀ 个8进制位,剩余不够3个2进制位的直接换算。

世界万物,永恒不变,人心炽热,璀璨光芒 1189

C语言操作符

C语言移位操作符,位操作符

2502_91083160的博客 2230

【C语言】解锁C语言魔法符号!探秘操作符的奇妙世界

本文系统讲解了C语言中的操作符及其应用。首先介绍了操作符的分类,包括算术、移位、位操作等11种类型。重点讲解了二进制与进制转换方法,以及原码、反码和补码的概念。通过多个实例详细解析了移位操作符和位操作符的使用技巧,包括整数交换、统计二进制1的个数等实际应用。文章还介绍了单目操作符、逗号表达式、结构体成员访问等高级用法,并分析了操作符优先级和表达式求值中的整型提升问题。最后总结了各种操作符在程序设计中的重要作用,帮助读者深入理解并灵活运用这些C语言的基础构建块。

小年糕的博客 1367

操作符详细解析(一)

学习编程语言,我们经常能听到2进制,8进制,10进制(日常生活使用的),16进制的说法,那具体是什么意思呢?其实它们是数值的不同表现形式。比如我们拿10进制15来举例:15的2进制是:111115的8进制是:1715的10进制是:1515的16进制是:F我们今天重点要介绍的是二进制:2进制满足满2进1(参考十进制满十上升一位)2进制的数字每一位都是0~1的数字组成,不会有其它数字比如二进制0001代表十进制1,二进制0010代表十进制2。

2302_79963723的博客 1231

小白C语言学习之旅----操作符详解

从右往左,把二进制划分为三个数字为一组,比如110 001 101,从右往左,第一组为1*2^0+0*2^1+1*2^2=5,第二组为1,第三组为6,所以转换为八进制得615(八进制转二进制反过来就是)这道题就适合用&来写,通过观察可以发现如果一个数n是2的幂次方,那么它的二进制最高位一定为1,其余位都是0,那么n-1就恰好相反,除了最高位是0,其余位都是1,那么n&(n-1)==0。4.赋值操作符:= ,+= ,-=,*=,/=,%=,<<= ,>>=,&= ,|= ,^=(2)任何数 ^0=原数。

2502_94195499的博客 731

C语言进制习题

C语言进制的练习,包括进制转化,原码,反码,以及移位操作符,位操作符

qq_73509351的博客 1272

C语言 操作符详解(上)

此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。了,比如f的二进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4。的数字每一位是0~9,a~f的,0~9,a~f的数字,各自写成2进制,最多有4个2进制位就足够。如: 2进制的01101011,换成16进制: 0x6b,16进制表示的时候前面加0x。其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。两部分,2进制序列中,最高位的1位是被当做符号。,0开头的数字,会被当做8进制。

2401_88465894的博客 1406

C语言-操作符详细解析(1)

操作符在c语言中有很重要的作用,鉴于大家在各个地方都有了解过操作符,但是其实大家可能学习的并不全面,并且后续指针可能就会用到操作符相关知识,本篇文章将会详尽地阐述c语言中的各种操作符及应用。

Become Mad的博客 1163

C语言操作符详解:从“二进制“到“位运算“,一次把操作符吃透

本文系统梳理了C语言操作符的核心知识点,重点解析了位运算相关难点。文章首先强调理解操作符不应死记优先级,而需掌握底层原理。主要内容包括:1. 二进制与进制转换方法;2. 原码/反码/补码表示原理(重点说明负数以补码存储的原因);3. 移位操作符的算术/逻辑差异及注意事项;4. 位操作符(&、|、^、~)的运算规则及实用技巧(如n&(n-1)消最低位1);5. 表达式求值中的整型提升机制和潜在陷阱。通过典型代码示例(如无临时变量交换整数)和面试题解析,揭示了位运算的底层逻辑。最后强调编写代码时

2501_93119704的博客 457
上一篇: 调整数组,使奇数在偶数前面
下一篇: 排序算法1---冒泡、插入、希尔排序
念殊15
博客等级 码龄8年 17粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值