如何将整数转换为二进制表示?
我正在使用下面的代码:
String input = "8";
String output = Convert.ToInt32(input, 2).ToString();
但是它抛出了一个异常:
找不到任何可解析的数字
如何将整数转换为二进制表示?
我正在使用下面的代码:
String input = "8";
String output = Convert.ToInt32(input, 2).ToString();
但是它抛出了一个异常:
找不到任何可解析的数字
当前回答
var b = Convert.ToString(i,2).PadLeft(32,'0').ToCharArray().Reverse().ToArray();
其他回答
在c#中从任何经典基转换为任何基
string number = "100";
int fromBase = 16;
int toBase = 10;
string result = Convert.ToString(Convert.ToInt32(number, fromBase), toBase);
// result == "256"
支持的基数是2,8,10和16
您的示例中有一个表示为字符串的整数。假设你的整数实际上是一个整数,你想把这个整数转换成二进制字符串。
int value = 8;
string binary = Convert.ToString(value, 2);
返回1000。
using System;
class Program
{
static void Main(string[] args) {
try {
int i = (int) Convert.ToInt64(args[0]);
Console.WriteLine("\n{0} converted to Binary is {1}\n", i, ToBinary(i));
} catch(Exception e) {
Console.WriteLine("\n{0}\n", e.Message);
}
}
public static string ToBinary(Int64 Decimal) {
// Declare a few variables we're going to need
Int64 BinaryHolder;
char[] BinaryArray;
string BinaryResult = "";
while (Decimal > 0) {
BinaryHolder = Decimal % 2;
BinaryResult += BinaryHolder;
Decimal = Decimal / 2;
}
BinaryArray = BinaryResult.ToCharArray();
Array.Reverse(BinaryArray);
BinaryResult = new string(BinaryArray);
return BinaryResult;
}
}
这是一个有趣的阅读,我正在寻找一个快速复制粘贴。 我知道我很久以前用bitmath做过这件事。
以下是我的看法。
// i had this as a extension method in a static class (this int inValue);
public static string ToBinaryString(int inValue)
{
string result = "";
for (int bitIndexToTest = 0; bitIndexToTest < 32; bitIndexToTest++)
result += ((inValue & (1 << (bitIndexToTest))) > 0) ? '1' : '0';
return result;
}
你可以在循环中加入一些模数。
// little bit of spacing
if (((bitIndexToTest + 1) % spaceEvery) == 0)
result += ' ';
你可能会使用或传入一个stringbuilder,并直接追加或索引,以避免释放,也可以绕过+=的使用;
我知道这个答案看起来与这里的大多数答案相似,但我注意到它们几乎都没有使用for循环。这段代码可以工作,并且可以被认为是简单的,因为它不需要任何特殊的函数就可以工作,就像带参数的ToString()一样,而且也不太长。也许有些人更喜欢for-loop而不是while-loop,这可能适合他们。
public static string ByteConvert (int num)
{
int[] p = new int[8];
string pa = "";
for (int ii = 0; ii<= 7;ii = ii +1)
{
p[7-ii] = num%2;
num = num/2;
}
for (int ii = 0;ii <= 7; ii = ii + 1)
{
pa += p[ii].ToString();
}
return pa;
}