C#: Comprobar si una cadena corresponde a un número binario/octal/hexadecimal

Tiempo de lectura: < 1 minuto

/// <summary>
/// Verifica si un número binario es válido.
/// </summary>
/// <param name="binaryNumber">El número binario a verificar.</param>
/// <returns>True si el número binario es válido, False en caso contrario.</returns>
public static bool IsBinary(string binaryNumber)
{
	bool isBinary = true;

	foreach (char digit in binaryNumber)
	{
		if (digit != '0' && digit != '1')
		{
			isBinary = false;
		}
	}

	return isBinary;
}

/// <summary>
/// Verifica si un número octal es válido.
/// </summary>
/// <param name="octalNumber">El número octal a verificar.</param>
/// <returns>True si el número octal es válido, False en caso contrario.</returns>
public static bool IsOctal(string octalNumber)
{
	bool isOctal = true;

	foreach (char digit in octalNumber)
	{
		if (digit < '0' || digit > '7')
		{
			isOctal = false;
		}
	}

	return isOctal;
}

/// <summary>
/// Verifica si un número hexadecimal es válido.
/// </summary>
/// <param name="hexadecimalNumber">El número hexadecimal a verificar.</param>
/// <returns>True si el número hexadecimal es válido, False en caso contrario.</returns>
public static bool IsHexadecimal(string hexadecimalNumber)
{
	bool isHexadecimal = true;

	foreach (char digit in hexadecimalNumber)
	{
		if (!IsHexDigit(digit))
		{
			isHexadecimal = false;
		}
	}

	return isHexadecimal;
}

/// <summary>
/// Verifica si un carácter es un dígito hexadecimal válido.
/// </summary>
/// <param name="hexDigit">El carácter a verificar.</param>
/// <returns>True si el carácter es un dígito hexadecimal válido, False en caso contrario.</returns>
public static bool IsHexDigit(char hexDigit)
{
	bool isHexDigit = (hexDigit >= '0' && hexDigit <= '9') ||
					  (hexDigit >= 'A' && hexDigit <= 'F') ||
					  (hexDigit >= 'a' && hexDigit <= 'f');

	return isHexDigit;
}

Deja un comentario