日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

把9999的各个2进制位置上的1的 值打印出来? 如何实现? 1的数量 二机制位 x(x-1)

發布時間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 把9999的各个2进制位置上的1的 值打印出来? 如何实现? 1的数量 二机制位 x(x-1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

把9999的各個2進制位置上的1的? ? 值打印出來?

如何實現?

#include <iostream.h>int a = 9999; int main() {while(a){int x = 0;x = a - (a&(a-1));a = a&(a-1);cout << x << endl;}return 0; }

解釋x&(x-1)

  • 將x的二進制值中,最后一個1置0,其它不變。即達到從x的尾部,刪除一個1的效果。

  • ?
  • 二進制的減法規則中可以得知,在做x-1時,當把x寫作

  • A1B

  • 的形式,其中A為隨意值,B為若干個0,可能為0個。

  • 這時x-1的值,實際上是

  • A0C

  • 的形式,其中A值不變,C為與B相同位數的1.

  • 這樣

  • x&(x-1)的結果,根據按位與的特性,當操作數一方為0時,結果為0,于是

  • x&(x-1) = A0B

  • 對比x原始值A1B,x&(x-1)即把最后一個1改成0

  • ?

    相同的思路

    世界上有10種人,一種懂二進制,一種不懂。那么你知道兩個int32整數m和n的二進制表達,有多少個位(bit)不同么?

    2016年04月17日 15:59:12

    閱讀數:1879

    世界上有10種人,一種懂二進制,一種不懂。那么你知道兩個int32整數m和n的二進制表達,有多少個位(bit)不同么?

    輸入例子:

    1999 2299

    輸出例子:

    7

    public class Solution {/*** 獲得兩個整形二進制表達位數不同的數量* * @param m 整數m* @param n 整數n* @return 整型*/public int countBitDiff(int m, int n) {int dif = m^n;int count = 0;for(int i=0;i<32;i++){if(((dif>>i)&1)!=0)count++;}return count;} }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_34692079/article/details/51173645

    個人分類:?java編程

    相關熱詞:?β世界?信息世界現實世界?現實世界信息世界?世界人口增長?世界建模

    總結

    以上是生活随笔為你收集整理的把9999的各个2进制位置上的1的 值打印出来? 如何实现? 1的数量 二机制位 x(x-1)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。