정수를 이진 표현으로 변환하는 방법은 무엇입니까?
이 코드를 사용하고 있습니다 :
String input = "8";
String output = Convert.ToInt32(input, 2).ToString();
그러나 예외가 발생합니다.
구문 분석 가능한 숫자를 찾을 수 없습니다
답변
예제에는 문자열로 표현 된 정수가 있습니다. 정수가 실제로 정수라고 가정하면 정수를 가져 와서 이진 문자열로 변환하려고합니다.
int value = 8;
string binary = Convert.ToString(value, 2);
1000을 반환합니다.
답변
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입니다.
답변
추가 코드없이 입력, 변환 및 출력만으로 매우 간단합니다.
using System;
namespace _01.Decimal_to_Binary
{
class DecimalToBinary
{
static void Main(string[] args)
{
Console.Write("Decimal: ");
int decimalNumber = int.Parse(Console.ReadLine());
int remainder;
string result = string.Empty;
while (decimalNumber > 0)
{
remainder = decimalNumber % 2;
decimalNumber /= 2;
result = remainder.ToString() + result;
}
Console.WriteLine("Binary: {0}",result);
}
}
}
답변
http://zamirsblog.blogspot.com/2011/10/convert-decimal-to-binary-in-c.html
public string DecimalToBinary(string data)
{
string result = string.Empty;
int rem = 0;
try
{
if (!IsNumeric(data))
error = "Invalid Value - This is not a numeric value";
else
{
int num = int.Parse(data);
while (num > 0)
{
rem = num % 2;
num = num / 2;
result = rem.ToString() + result;
}
}
}
catch (Exception ex)
{
error = ex.Message;
}
return result;
}
답변
원시적 인 방법 :
public string ToBinary(int n)
{
if (n < 2) return n.ToString();
var divisor = n / 2;
var remainder = n % 2;
return ToBinary(divisor) + remainder;
}
답변
Convert.ToInt32(string, base)
기본으로 기본 변환을 수행하지 않습니다. 문자열에 표시된 기본에 유효한 숫자가 포함되어 있고 기본 10으로 변환한다고 가정합니다.
따라서 “8”은 밑이 2 인 유효한 숫자가 아니기 때문에 오류가 발생합니다.
String str = "1111";
String Ans = Convert.ToInt32(str, 2).ToString();
보여줄 것이다 15
(1111 base 2 = 15 base 10)
String str = "f000";
String Ans = Convert.ToInt32(str, 16).ToString();
표시 61440
합니다.
답변
나는이 답변이 이미 여기에있는 대부분의 답변과 비슷하다는 것을 알고 있지만 그중 어느 것도 for-loop를 사용하지 않는다는 것을 알았습니다. 이 코드는 매개 변수가있는 ToString ()과 같은 특수 함수없이 작동하며 너무 길지 않다는 점에서 간단하게 간주 될 수 있습니다. 어쩌면 일부는 while 루프 대신 for 루프를 선호 할 수도 있습니다.
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;
}