計算 x 的二進制表示中 1 的個數

計算 x 的二進制表示中 1 的個數

代碼如下:

int func(int x){int countx = 0;while (x>0){countx++;x = x & (x - 1);}return countx;}

完整代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){textBox2.Text = func(Convert.ToInt32(textBox1.Text)).ToString();}int func(int x){int countx = 0;while (x>0){countx++;x = x & (x - 1);}return countx;}}
}

參考鏈接

五個C語言筆試題,看看能做對幾個? (qq.com)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzI3MDYwNDczNg==&mid=2247488733&idx=1&sn=be345813c532c25d568f50649a046a31&chksm=eacfd472ddb85d6411c23f5200a8bbca7ac6f449062664e8f8d913f3069538c68929ce494e21&mpshare=1&scene=1&srcid=0601W9oUFxeeiIfpgeKihV2w&sharer_shareinfo=6603a5e97825999a442de3924e05b1ce&sharer_shareinfo_first=8664777b365f154110e1e3faab85f5b3#rd

特此記錄

anlog

2024年6月2日

計算一個數的二進制表示中1的個數是一個經典的問題,也被稱為“漢明重量”問題。有多種方法可以解決這個問題,其中一種常見的方法是利用位運算的性質進行計算。具體來說,可以不斷地將原數與1進行按位與運算,然后再將原數右移一位,直到原數變為0為止。每次按位與運算的結果如果為1,則說明當前二進制位上的數字為1,累加1即可。以下是一個示例代碼:

int countOnes(int n) {int ones = 0;while (n != 0) {ones += n & 1;n >>= 1;}return ones;
}

計算二進制中1的方法有很多種,以下是幾種常見的方法:

  1. 暴力法:依次判斷二進制數的每一位是否為1,統計1的個數。
  2. 移位法:將二進制數不斷右移一位,并判斷最右邊的位是否為1,統計1的個數。
  3. 位運算法:利用位運算中的&(與)操作符,將二進制數的最后一位與1進行與操作,判斷是否為1,然后將該數右移一位。不斷重復該過程直到該數為0。

除了以上三種方法外,還有其他一些更高效的方法,比如分組查表法、二進制分治法等。在實際應用中,應根據具體情況選擇不同的方法。

特此記錄

anlog

2024年6月2日

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20861.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32基于HAL庫的HC-SR04模塊超聲波測距

文章目錄 一、HC-SR04模塊介紹二、創建工程1.選擇芯片2.配置RCC、SY![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/9d2a5b883f0e409eabb804e6da861277.png)3.配置串口14.配置定時器5.配置GPIO 三、Keil代碼1.勾選Use MicroLIB2.創建SR04.c和SR04.h文件3.其他代碼 …

html three.js 引入.stl模型示例

1.新建一個模塊用于放置模型 <div id"chart_map" style"width:800px;height:500px"></div> 2. 引入代碼根據需求更改 <!-- 在head或body標簽內加入以下鏈接 --> <script src"https://cdn.jsdelivr.net/npm/three0.137/build/t…

算法題-字符串排序

題目描述 給定n個字符串&#xff0c;請對n個字符串按照字典序排列。 輸入描述: 輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字符串(字符串長度≤100),字符串中只含有大小寫字母。 輸出描述: 數據輸出n行&#xff0c;輸出結果為按照字典序排列的字符串。 輸入 #輸…

2.7HDR與LDR

一、基本概念 1.基本概念 動態范圍&#xff08;Dynamic Range&#xff09; 最高亮度 / 最低亮度 HDR High Dynamic RangeLDR Low Dynamic Range HDR與LDR和Tonemapping的對應關系&#xff1a; 我們常用的各種顯示器屏幕&#xff0c;由于不同的廠家不同的工藝導致它們的…

HALCON-從入門到入門-軟件界面介紹

1.廢話 從halcon12到halcon23&#xff0c;開發的IDE界面大差不差&#xff0c;簡單說下界面上不同功能按鍵的分布&#xff0c;以及一些快捷鍵啥的&#xff0c;要是還有我沒有總結到的&#xff0c;又比較好用的&#xff0c;歡迎大家補充一下。 1.菜單欄 從上看到下&#xff0c;…

如何從0到設計一個CRM系統

什么是CRM 設計開始之前&#xff0c;先來了解一下什么是CRM。CRM&#xff08;Customer Relationship Management&#xff09;是指通過建立和維護與客戶的良好關系&#xff0c;達到滿足客戶需求、提高客戶滿意度、增加業務收入的一種管理方法和策略。CRM涉及到跟蹤和管理客戶的所…

python深度學習入門-從零構建CNN和RNN

文章目錄 第1章 基本概念1.1. 導數1.2. 鏈式法則1.3. 多輸入函數的導數1.4. 多輸入向量函數的導數1.5. 向量函數及其導數&#xff1a; 再進一步1.6. 包含兩個二維矩陣數據的計算圖 第2章 基本原理2.1. 監督學習概述2.2. 監督學習模型2.3. 線性回歸2.3.1. 線性回歸&#xff1a; …

[激光原理與應用-94]:電控 - 低噪聲運放的原理

目錄 一、什么是低噪聲運放 1.1 什么是低噪聲水平 1.2 什么是高增益 在電子工程中的應用 在通信領域的應用 在音頻和視頻處理中的應用 注意事項 1.3 什么是寬帶寬 1.4 什么是低偏置電流 重要性 特點 解決方法 應用 二、低噪聲運放的原理圖 1. 基本構成 2. 設計…

HTML5新元素探索:重塑網頁結構與功能的革新

隨著互聯網技術的飛速發展&#xff0c;HTML5作為新一代超文本標記語言標準&#xff0c;不僅增強了對多媒體內容的支持&#xff0c;還引入了一系列新元素&#xff0c;旨在使網頁結構更加語義化、可訪問性更強。本文將深入探討幾個核心的新元素&#xff0c;通過代碼示例展示它們如…

22data 腳本語言基礎——Python

橫線為沒講到的。 1. 基礎語法 變量&#xff1a;變量的聲明和使用。 數據類型&#xff1a;整數&#xff08;int&#xff09;、浮點數&#xff08;float&#xff09;、字符串&#xff08;str&#xff09;、布爾值&#xff08;bool&#xff09;等。 運算符&#xff1a;算術運算符…

第五維度【百度之星】/二分

第五維度 二分 思路&#xff1a;看到題目是盡可能晚的情況下最早就應該想到貪心。 #include<bits/stdc.h> using namespace std; typedef long long ll; ll a[100005],b[100005]; ll n,m; bool check(ll t) {ll res0,big0;for(ll i0;i<n;i) {if(a[i]>t) continue…

JMeter工具介紹

Jmeter功能概要 JDK常用文件目錄介紹 Bin目錄&#xff1a;存放可執行文件和配置文件 Docs目錄&#xff1a;是Jmeter的API文檔&#xff0c;用于開發擴展組件 printable_docs目錄&#xff1a;用戶幫助手冊 lib目錄&#xff1a;存放JMeter依賴的jar包和用戶擴展所依賴的Jar包 修…

HALCON-從入門到入門-讀取圖片保存圖片

1.廢話 視覺算法庫的第一步。 讀取圖片&#xff1a; 看你是從哪里讀取&#xff0c;從相機讀取還是從本地硬盤中讀取。 保存圖片&#xff1a;就只有保存到本地了。 上面的截圖顯示我讀取了一張圖片 從相機中讀取另開一篇來說&#xff0c;先說從本地磁盤讀取哈。 怎么讀取的…

創建maven 項目

一、groupId, artifactId When creating a Maven project in IntelliJ IDEA, "groupId" and "artifactId" are two essential elements of the projects metadata. groupId: This typically identifies your project uniquely across all projects. For e…

C語言程序設計第二講:順序程序設計

一、數據類型 1. 基本數據類型 C語言中提供了一些基本數據類型&#xff0c;用于表示各種不同類型的數據&#xff1a; 整數類型&#xff1a; int&#xff1a;表示整數&#xff0c;通常占用4個字節。short int&#xff1a;表示短整數&#xff0c;通常占用2個字節。long int&am…

Pycharm 的使用

使用文檔&#xff1a; Getting started | PyCharm DocumentationPyCharm 中文指南 — PyCharm 中文指南(Win版) 2.0 documentation 在Ubuntu中安裝并配置Pycharm教程&#xff08;安裝 Pycharm&#xff09;Ubuntu安裝pycharm及快速創建pycharm的快捷方式&#xff0c;便于使用&am…

數據結構復習指導之交換排序(冒泡排序,快速排序)

目錄 交換排序 復習提示 1.冒泡排序 1.1基本思想 1.2算法代碼 1.3性能分析 2.快速排序 2.1基本思想 2.2算法代碼 2.3性能分析 交換排序 復習提示 所謂交換&#xff0c;是指根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置。 基于交換的排序算法很…

鏈表逆序用哨兵位頭節點

在C語言中實現鏈表的逆序&#xff0c;使用哨兵頭節點是一種常見的做法。哨兵頭節點可以簡化代碼邏輯&#xff0c;特別是當鏈表為空時&#xff0c;可以避免空指針異常。下面是一個使用哨兵頭節點逆序單鏈表的C語言實現 示例&#xff1a; #include <stdio.h> #include &l…

富格林:應用正規技巧阻撓被騙

富格林悉知&#xff0c;隨著如今入市現貨黃金的朋友愈來愈多&#xff0c;不少投資者也慢慢開始重視起提高自身的正規投資技巧&#xff0c;希望能阻撓被騙更高效地在市場上獲利。雖然目前黃金市場存在一定的受害風險&#xff0c;但只要投資者嚴格按照正規的交易規則來做單&#…

python解決flask啟動的同時啟動定時任務

業務場景描述&#xff1a;在常規的開發中&#xff0c;我們開發接口服務&#xff0c;一般會將數據放在數據庫、文件等第三方文件&#xff0c;啟動服務后&#xff0c;服務到后臺數據庫中加載數據&#xff0c;這樣做的好處當然是開發會更加便利以及數據的可復用性較高&#xff0c;…