当前位置: 首页 > wzjs >正文

网站开发需要哪些资料软文广告经典案例300

网站开发需要哪些资料,软文广告经典案例300,wordpress 视频图片网站,科技让生活更美好二进制中1的个数 输入一个 32位整数,输出该数二进制表示中 1 的个数。 注意: 负数在计算机中用其绝对值的补码来表示。 数据范围 −100≤ 输入整数 ≤100 样例1 输入:9 输出:2 解释:9的二进制表示是1001&#xf…

二进制中1的个数


输入一个 32位整数,输出该数二进制表示中 1 的个数。

注意

  • 负数在计算机中用其绝对值的补码来表示。
数据范围

−100≤ 输入整数 ≤100

样例1
输入:9
输出:2
解释:9的二进制表示是1001,一共有21
样例2
输入:-2
输出:31
解释:-2在计算机里会被表示成11111111111111111111111111111110,一共有311

算法描述

通过迭代计算整数 n 的二进制表示中 1 的个数,步骤如下:

  1. 转换为无符号整数:避免负数右移时的符号扩展问题
  2. 循环直到 n = 0
    • 检查最低位是否为 1n & 1 == 1 则计数器 +1
    • 右移一位:n = n >> 1(无符号右移自动补0)
  3. 返回计数器值
时间复杂度

O ( log ⁡ n ) O(\log n) O(logn)
每次迭代将 n n n 减半(右移一位),最多执行 log ⁡ 2 n \log_2 n log2n

关键点:负数处理
unsigned int u = static_cast<unsigned int>(n);  // 关键转换
  • C++ 中右移负数时最高位补 1,会导致死循环
  • 转换为无符号整数后,右移时最高位补 0
C++ 实现
int countOnes(int n) {unsigned int u = static_cast<unsigned int>(n);  // 处理负数的核心步骤int count = 0;while (u != 0) {if (u & 1) count++;  // 检查最低位u >>= 1;             // 无符号右移(自动补0)}return count;
}
示例说明
输入二进制步骤分解输出
5000001012个12
-311111101 → 转无符号:253 (11111101)7个17

注意:负数的二进制补码表示在转换为无符号整数时,其原始位模式保持不变,但右移行为变为逻辑移位(补0)而非算术移位(补符号位)。

http://www.dtcms.com/wzjs/306211.html

相关文章:

  • 义乌网站建设现状外链百科
  • 做船公司网站网盘搜索引擎入口
  • iis 网站拒绝显示此网页免费建站的网站哪个好
  • 做网站卖产品要注册公司吗百度云网盘下载
  • 网站建设公司ipo广东网站营销seo方案
  • 罗湖做网站哪家好互联网运营
  • 哪个网站可以做服装批发衣服黑龙江网络推广好做吗
  • 怎么做同学录的网站免费发链接的网站
  • 银川如何做百度的网站免费个人网站建站申请
  • 紫网站建设清远市发布
  • 免费淘宝网站建设最新新闻播报
  • 集宁有做蒙古黑石材网站的嘛上海今天刚刚发生的新闻
  • 怎么免费制作网站宁波seo行者seo09
  • 连云港网站制作公司口碑好百度投诉中心在线申诉
  • 苏州高端做网站小程序开发多少钱
  • 人力资源外包服务公司网站seo关键词
  • 重庆技术支持 网站建设公司软文范例大全300字
  • 各大网站投稿推广神器app
  • 报考大专学历需要什么条件镇江seo优化
  • 单页面的网站50篇经典软文100字
  • 网站建设的研究目标网站收录一键提交
  • 社交公众号开发公司百度搜索引擎优化方案
  • 政府网站建设比较好的sem推广
  • 番禺品牌型网站建设郑州seo顾问阿亮
  • 企业网站开发建设委托合同成功的网络营销案例及分析
  • 如何做棋牌网站今日头条新闻推荐
  • 庆元县住房和城乡建设局网站中国今天最新军事新闻
  • wordpress移动端转发分享优化关键词排名提升
  • 网站建设规范线上营销方式主要有哪些
  • 北京诚通新新建设有限公司网站外贸推广平台哪个好