recursivo para numero hexadecimal entero dev convertir conversor binario c#

para - decimal a binario recursivo c#



Conversión de entero a binario en C# (16)

¿Cómo convertir un número entero en su representación binaria?

Estoy usando este código:

String input = "8"; String output = Convert.ToInt32(input, 2).ToString();

Pero arroja una excepción:

No se pudieron encontrar los dígitos analizables


BCL siempre que Convert.ToString(n, 2) sea ​​bueno, pero en caso de que necesite una implementación alternativa, que es unos pocos ticks más rápidos que los proporcionados por BCL.

La implementación personalizada funciona para todos los enteros (-ve y + ve). Fuente original tomada de https://davidsekar.com/algorithms/csharp-program-to-convert-decimal-to-binary

static string ToBinary(int n) { int j = 0; char[] output = new char[32]; if (n == 0) output[j++] = ''0''; else { int checkBit = 1 << 30; bool skipInitialZeros = true; // Check the sign bit separately, as 1<<31 will cause // +ve integer overflow if ((n & int.MinValue) == int.MinValue) { output[j++] = ''1''; skipInitialZeros = false; } for (int i = 0; i < 31; i++, checkBit >>= 1) { if ((n & checkBit) == 0) { if (skipInitialZeros) continue; else output[j++] = ''0''; } else { skipInitialZeros = false; output[j++] = ''1''; } } } return new string(output, 0, j); }

El código anterior es mi implementación. Por lo tanto, estoy ansioso por escuchar cualquier comentario :)


Esta función convertirá un entero a binario en C #:

public static string ToBinary(int N) { int d = N; int q = -1; int r = -1; string binNumber = string.Empty; while (q != 1) { r = d % 2; q = d / 2; d = q; binNumber = r.ToString() + binNumber; } binNumber = q.ToString() + binNumber; return binNumber; }


Muy simple sin código adicional, solo entrada, conversión y salida.

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); } } }


Otra solución alternativa pero también en línea es:

int number = 25; string binary = Enumerable.Range(0, (int) Math.Log(number, 2) + 1).Aggregate(string.Empty, (collected, bitshifts) => (number >> bitshifts) % 2 + collected);


Sé que esta respuesta sería similar a la mayoría de las respuestas que ya están aquí, pero noté que casi ninguna de ellas usa un for-loop. Este código funciona, y se puede considerar simple, en el sentido de que funcionará sin funciones especiales, como ToString () con parámetros, y no es demasiado largo también. Tal vez algunos prefieran for-loops en lugar de while while-loop, esto puede ser adecuado para ellos.

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; }


Su ejemplo tiene un número entero expresado como una cadena. Supongamos que su número entero es en realidad un número entero, y desea tomar el número entero y convertirlo en una cadena binaria.

int value = 8; string binary = Convert.ToString(value, 2);

Que devuelve 1000


forma primitiva:

public string ToBinary(int n) { if (n < 2) return n.ToString(); var divisor = n / 2; var remainder = n % 2; return ToBinary(divisor) + remainder; }


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; }


Convert.ToInt32(string, base) no convierte la base en su base. Supone que la cadena contiene un número válido en la base indicada y se convierte en base 10.

Entonces, está recibiendo un error porque "8" no es un dígito válido en la base 2.

String str = "1111"; String Ans = Convert.ToInt32(str, 2).ToString();

Mostrará 15 (1111 base 2 = 15 base 10)

String str = "f000"; String Ans = Convert.ToInt32(str, 16).ToString();

61440 .


Convierta desde cualquier base clásica a cualquier base en C #

String number = "100"; int fromBase = 16; int toBase = 10; String result = Convert.ToString(Convert.ToInt32(number, fromBase), toBase); // result == "256"

Bases soportadas son 2, 8, 10 y 16


static void Main(string[] args) { Console.WriteLine("Enter number for converting to binary numerical system!"); int num = Convert.ToInt32(Console.ReadLine()); int[] arr = new int[16]; //for positive integers if (num > 0) { for (int i = 0; i < 16; i++) { if (num > 0) { if ((num % 2) == 0) { num = num / 2; arr[16 - (i + 1)] = 0; } else if ((num % 2) != 0) { num = num / 2; arr[16 - (i + 1)] = 1; } } } for (int y = 0; y < 16; y++) { Console.Write(arr[y]); } Console.ReadLine(); } //for negative integers else if (num < 0) { num = (num + 1) * -1; for (int i = 0; i < 16; i++) { if (num > 0) { if ((num % 2) == 0) { num = num / 2; arr[16 - (i + 1)] = 0; } else if ((num % 2) != 0) { num = num / 2; arr[16 - (i + 1)] = 1; } } } for (int y = 0; y < 16; y++) { if (arr[y] != 0) { arr[y] = 0; } else { arr[y] = 1; } Console.Write(arr[y]); } Console.ReadLine(); } }


// I use this function public static string ToBinary(long number) { string digit = Convert.ToString(number % 2); if (number >= 2) { long remaining = number / 2; string remainingString = ToBinary(remaining); return remainingString + digit; } return digit; }


int x=550; string s=" "; string y=" "; while (x>0) { s += x%2; x=x/2; } Console.WriteLine(Reverse(s)); } public static string Reverse( string s ) { char[] charArray = s.ToCharArray(); Array.Reverse( charArray ); return new string( charArray ); }


class Program { static void Main(string[] args) { var @decimal = 42; var binaryVal = ToBinary(@decimal, 2); var binary = "101010"; var decimalVal = ToDecimal(binary, 2); Console.WriteLine("Binary value of decimal {0} is ''{1}''", @decimal, binaryVal); Console.WriteLine("Decimal value of binary ''{0}'' is {1}", binary, decimalVal); Console.WriteLine(); @decimal = 6; binaryVal = ToBinary(@decimal, 3); binary = "20"; decimalVal = ToDecimal(binary, 3); Console.WriteLine("Base3 value of decimal {0} is ''{1}''", @decimal, binaryVal); Console.WriteLine("Decimal value of base3 ''{0}'' is {1}", binary, decimalVal); Console.WriteLine(); @decimal = 47; binaryVal = ToBinary(@decimal, 4); binary = "233"; decimalVal = ToDecimal(binary, 4); Console.WriteLine("Base4 value of decimal {0} is ''{1}''", @decimal, binaryVal); Console.WriteLine("Decimal value of base4 ''{0}'' is {1}", binary, decimalVal); Console.WriteLine(); @decimal = 99; binaryVal = ToBinary(@decimal, 5); binary = "344"; decimalVal = ToDecimal(binary, 5); Console.WriteLine("Base5 value of decimal {0} is ''{1}''", @decimal, binaryVal); Console.WriteLine("Decimal value of base5 ''{0}'' is {1}", binary, decimalVal); Console.WriteLine(); Console.WriteLine("And so forth.. excluding after base 10 (decimal) though :)"); Console.WriteLine(); @decimal = 16; binaryVal = ToBinary(@decimal, 11); binary = "b"; decimalVal = ToDecimal(binary, 11); Console.WriteLine("Hexidecimal value of decimal {0} is ''{1}''", @decimal, binaryVal); Console.WriteLine("Decimal value of Hexidecimal ''{0}'' is {1}", binary, decimalVal); Console.WriteLine(); Console.WriteLine("Uh oh.. this aint right :( ... but let''s cheat :P"); Console.WriteLine(); @decimal = 11; binaryVal = Convert.ToString(@decimal, 16); binary = "b"; decimalVal = Convert.ToInt32(binary, 16); Console.WriteLine("Hexidecimal value of decimal {0} is ''{1}''", @decimal, binaryVal); Console.WriteLine("Decimal value of Hexidecimal ''{0}'' is {1}", binary, decimalVal); Console.ReadLine(); } static string ToBinary(decimal number, int @base) { var round = 0; var reverseBinary = string.Empty; while (number > 0) { var remainder = number % @base; reverseBinary += remainder; round = (int)(number / @base); number = round; } var binaryArray = reverseBinary.ToCharArray(); Array.Reverse(binaryArray); var binary = new string(binaryArray); return binary; } static double ToDecimal(string binary, int @base) { var val = 0d; if (!binary.All(char.IsNumber)) return 0d; for (int i = 0; i < binary.Length; i++) { var @char = Convert.ToDouble(binary[i].ToString()); var pow = (binary.Length - 1) - i; val += Math.Pow(@base, pow) * @char; } return val; } }

Fuentes de aprendizaje:

Todo lo que necesitas saber sobre https://www.mathsisfun.com/binary-number-system.html

Todo lo que necesita saber y más, incluido el algoritmo para convertir de decimal a binario http://www.electronics-tutorials.ws/binary/bin_2.html


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); } }//end Main 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; } // The algoritm gives us the binary number in reverse order (mirrored) // We store it in an array so that we can reverse it back to normal BinaryArray = BinaryResult.ToCharArray(); Array.Reverse(BinaryArray); BinaryResult = new string(BinaryArray); return BinaryResult; } }//end class Program


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; }