国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C# 顛倒二進制位

這篇具有很好參考價值的文章主要介紹了C# 顛倒二進制位。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

190 顛倒二進制位

顛倒給定的 32 位無符號整數(shù)的二進制位。

提示:

請注意,在某些語言(如 Java)中,沒有無符號整數(shù)類型。在這種情況下,輸入和輸出都將被指定為有符號整數(shù)類型,并且不應(yīng)影響您的實現(xiàn),因為無論整數(shù)是有符號的還是無符號的,其內(nèi)部的二進制表示形式都是相同的。
在 Java 中,編譯器使用二進制補碼記法來表示有符號整數(shù)。因此,在 示例 2 中,輸入表示有符號整數(shù) -3,輸出表示有符號整數(shù) -1073741825。

示例 1:

輸入:n = 00000010100101000001111010011100
輸出:964176192 (00111001011110000010100101000000)
解釋:輸入的二進制串 00000010100101000001111010011100 表示無符號整數(shù) 43261596,
因此返回 964176192,其二進制表示形式為 00111001011110000010100101000000。
示例 2:

輸入:n = 11111111111111111111111111111101
輸出:3221225471 (10111111111111111111111111111111)
解釋:輸入的二進制串 11111111111111111111111111111101 表示無符號整數(shù) 4294967293,
因此返回 3221225471 其二進制表示形式為 10111111111111111111111111111111 。

提示:

輸入是一個長度為 32 的二進制字符串

來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/reverse-bits

解決方案:

提供思路

1)最直觀的做法是依次遍歷 n 的二進制表示的每一位,對于 0≤i<32,n 的二進制表示的從低到高第 i 位在顛倒二進制位之后是從低到高第 31?i 位。

2)解法一需要遍歷整數(shù) n 的二進制表示的每一位,這道題存在時間復雜度更低的分治解法。

將整數(shù) n 的二進制位分組顛倒。初始時 n 分成 32 組,每組有 1 位。當 n 的分組個數(shù)大于 1 時,每次將 n 的相鄰兩組互換,互換之后這兩組合并為一個組,直到 n 的分組個數(shù)等于 1 時結(jié)束。分組情況具體變化如下。

1 16 組,每組有 2 位。

2 8 組,每組有 4 位。

4 組,每組有 8 位。

2 組,每組有 16 位。

1 組,每組有 32 位。

上代碼:

//1
public class Solution
{
    public uint reverseBits(uint n)
    {
        const int BITS = 32;
        uint reversed = 0;
        for (int i = 0, j = BITS - 1; i < BITS; i++, j--)
        {
            uint bit = (n >> i) & 1;
            reversed |= bit << j;
        }
        return reversed;
    }
}

//2
public class Solution
{
    public uint reverseBits(uint n)
    {
        n = (n & 0x55555555) << 1 | (n >> 1) & 0x55555555;
        n = (n & 0x33333333) << 2 | (n >> 2) & 0x33333333;
        n = (n & 0x0f0f0f0f) << 4 | (n >> 4) & 0x0f0f0f0f;
        n = (n << 24) | ((n & 0xff00) << 8) | ((n >> 8) & 0xff00) | (n >> 24);
        return n;
    }
}

個人感悟:這題沒太懂,參考給出的結(jié)果,有需要的話可以強行背誦。

以上是碰到的第一百九十題,后續(xù)持續(xù)更新。感覺對你有幫助的小伙伴可以幫忙點個贊噢!
C# 顛倒二進制位,算法練習初級,c#,leetcode文章來源地址http://www.zghlxwxcb.cn/news/detail-567415.html

到了這里,關(guān)于C# 顛倒二進制位的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C#,二進制數(shù)的按位旋轉(zhuǎn)(Bits Rotate)算法與源代碼

    C#,二進制數(shù)的按位旋轉(zhuǎn)(Bits Rotate)算法與源代碼

    二進制數(shù)的按位旋轉(zhuǎn)(翻轉(zhuǎn))是編程中常見的按位運算方法。 二進制數(shù)的按位旋轉(zhuǎn)分為左轉(zhuǎn)、右轉(zhuǎn)。 左轉(zhuǎn)意味著數(shù)據(jù)變大,右轉(zhuǎn)意味著數(shù)據(jù)變?。ㄓ袚p)。 using System; using System.Text; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer.Algorithm { ?? ?public static

    2024年02月19日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之字符串: Leetcode 696. 計數(shù)二進制子串 (Typescript版)

    計數(shù)二進制子串 https://leetcode.cn/problems/count-binary-substrings/ 描述 給定一個字符串 s,統(tǒng)計并返回具有相同數(shù)量 0 和 1 的非空(連續(xù))子字符串的數(shù)量,并且這些子字符串中的所有 0 和所有 1 都是成組連續(xù)的。 重復出現(xiàn)(不同位置)的子串也要統(tǒng)計它們出現(xiàn)的次數(shù)。 示例 1: 示

    2024年02月01日
    瀏覽(96)
  • C#,二進制數(shù)的非0位數(shù)統(tǒng)計(Bits Count)的算法與源代碼

    C#,二進制數(shù)的非0位數(shù)統(tǒng)計(Bits Count)的算法與源代碼

    計算一個十進制數(shù)的二進制表示有多少位1? 使用循環(huán)按位統(tǒng)計1的個數(shù)。 利用一個數(shù)組或哈希生成一張表,存儲不同二進制編碼對應(yīng)的值為1的二進制位數(shù),那么在使用時,只需要去進行查詢,即可在O(1)的時間復雜度內(nèi)得到結(jié)果。 但是,此算法有個弊端,由于算法是采用空間

    2024年02月22日
    瀏覽(26)
  • java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode1091. 二進制矩陣中的最短路徑

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題-----LeetCode1091. 二進制矩陣中的最短路徑

    java數(shù)據(jù)結(jié)構(gòu)與算法刷題目錄(劍指Offer、LeetCode、ACM)-----主目錄-----持續(xù)更新(進不去說明我沒寫完): https://blog.csdn.net/grd_java/article/details/123063846 雙分裂蛇:是求二維表中從起點到終點的經(jīng)典思路(也是求無權(quán)圖的最短路徑問題的經(jīng)典解法)。創(chuàng)建兩條分裂蛇,分別從起點和

    2024年04月26日
    瀏覽(97)
  • 【LeetCode】67. 二進制求和

    難度:簡單 給你兩個二進制字符串 a 和 b ,以二進制字符串的形式返回它們的和。 示例 1: 示例 2: 提示: 1 = a.length, b.length = 10^4 a 和 b 僅由字符 \\\'0\\\' 或 \\\'1\\\' 組成 字符串如果不是 \\\"0\\\" ,就不含前導零 思路: 從后往前遍歷字符逐個判斷即可 最后考慮是否進位 sum 1 等價于 sum

    2024年02月05日
    瀏覽(86)
  • Leetcode67 二進制求和

    Leetcode67 二進制求和

    給你兩個二進制字符串? a ?和? b ?,以二進制字符串的形式返回它們的和。 ? ? ?代碼 ?

    2024年02月11日
    瀏覽(89)
  • C#生成二進制文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Runtime.InteropServices; namespace WindowsFormsApplication1 { public partial class MAC : Form { public MAC() { InitializeComponent(); } [StructLay

    2024年02月13日
    瀏覽(30)
  • leetcode: 2861. 最大二進制奇數(shù)

    給你一個?二進制?字符串? s ?,其中至少包含一個? \\\'1\\\' ?。 你必須按某種方式?重新排列?字符串中的位,使得到的二進制數(shù)字是可以由該組合生成的?最大二進制奇數(shù)?。 以字符串形式,表示并返回可以由給定組合生成的最大二進制奇數(shù)。 注意?返回的結(jié)果字符串?可以?含

    2024年03月13日
    瀏覽(90)
  • 代碼訓練LeetCode(12)二進制求和

    代碼訓練LeetCode(12)二進制求和

    Author: Once Day Date: 2024年3月14日 一位熱衷于Linux學習和開發(fā)的菜鳥,試圖譜寫一場冒險之旅,也許終點只是一場白日夢… 漫漫長路,有人對你微笑過嘛… 全系列文章可參考專欄: 十年代碼訓練_Once-Day的博客-CSDN博客 參考文章: 67. 二進制求和 - 力扣(LeetCode) 力扣 (LeetCode) 全球極

    2024年03月20日
    瀏覽(93)
  • MATLAB練習題:編寫程序?qū)⑹M制正整數(shù)轉(zhuǎn)換為對應(yīng)的二進制字符向量

    MATLAB練習題:編寫程序?qū)⑹M制正整數(shù)轉(zhuǎn)換為對應(yīng)的二進制字符向量

    ?講解視頻:可以在bilibili搜索“MATLAB教程新手入門篇——數(shù)學建模清風主講”。 MATLAB教程新手入門篇(數(shù)學建模清風主講,適合零基礎(chǔ)同學觀看)_嗶哩嗶哩_bilibili ?編寫程序?qū)⑹M制正整數(shù)轉(zhuǎn)換為對應(yīng)的二進制字符向量。例如6對應(yīng)的二進制字符向量為\\\'110\\\', 38對應(yīng)的二進制字

    2024年02月02日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包