簡體   English   中英

獲取數字的n位二進制表示

[英]Get the n digit binary representation of a number

我嘗試過這種方法來獲取C#中的二進制表示形式

int i = 1;
string binary = Convert.ToString(i, 2);

它返回單個字符字符串“ 1”

我需要一個數字字符串,假設數字是8 ni想要5位二進制表示,

我需要它是“ 01000”

輸入的數字位數(n)。

謝謝

string binary = Convert.ToString(i, 2).PadLeft(5, '0');

您可以這樣做。

string str = Convert.ToString(8, 2).PadLeft(5, '0');

PadLeft用於將0放在表達式的左側,在這里我們給定5是數字的寬度。 第二個參數是數字小於5個字符時要放在左邊的字符

自己動手,您可以使用類似以下內容(未經測試,但我認為這應該可行):

int i = 8; // your number
int noZeros = 5;
StringBuilder sb = new StringBuilder();
while(i != 0 && noZeros > 0){
    if(i & 1 != 0){ sb.Insert(0, "1"); }
    else { sb.Insert(0, "0"); }
    i = i >> 1;
    noZeros --;
}

string binary = sb.ToString();

這應該適用於任何int。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM