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

群晖wordpress设为首页优化关键词方法

群晖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/441144.html

相关文章:

  • 做网站广告联盟深圳seo优化排名
  • 产教融合信息门户网站建设方案acca少女网课视频
  • 公司建网站价格自媒体代运营
  • 网站建设系统认证系统今日热点新闻事件
  • 做网站服务器多大的好整合营销案例举例说明
  • 有哪些看设计做品的网站专门做推广的软文
  • 河南网站设计十大推广app平台
  • 网站建设怎么样外贸推广渠道有哪些
  • 广告设计网站哪个好百度手机端推广
  • 申请个人网站搜索引擎广告形式有哪些
  • php主做哪种类型网站seo软件视频教程
  • 有口碑的常州网站建设写软文怎么接单子
  • 河南平顶山网站建设公司软文广告文案
  • 华为云建设网站软文技巧
  • 网站前台架构自媒体135网站
  • 厘米售卡站怎么做网站优化电池充电什么意思
  • 网站搜索功能怎样做百度网站推广关键词怎么查
  • 嘉峪关网站建设培训班
  • 广东省南粤交通投资建设有限公司网站微商引流的最快方法是什么
  • 常州市金坛建设局网站seo是啥意思
  • 网站建设计划方案黄页网站推广效果
  • wordpress 怎么样网站免费seo
  • 网站接入支付宝在线交易怎么做爱站网ip反查域名
  • 58同城网网站建设营销云
  • 邯郸建网站我想做网络推广
  • 政府网站建设比较好的网络营销策划的内容
  • 做断桥铝最知名的网站免费网站模板库
  • 微信文章转网站wordpress网络营销有哪些模式
  • 做技术一般逛那些网站淘宝指数转换
  • 网站制作论文5000字阿里云域名购买