Преобразовать целое число в двоичную строку с ведущими нулями
Мне нужно преобразовать int в bin и с дополнительными битами.
string aaa = Convert.ToString(3, 2);
он возвращает 11
, но мне нужно 0011
или 00000011
.
Как это сделать?
Ответы
Ответ 1
11
двоичное представление 3
. Бинарное представление этого значения составляет 2
бит.
3 = 2 0 * 1 + 2 1 * 1
Вы можете использовать String.PadLeft(Int, Char)
, чтобы добавить эти нули.
Convert.ToString(3, 2).PadLeft(4, '0') // 0011
Convert.ToString(3, 2).PadLeft(8, '0') // 00000011
Ответ 2
Только то, что Soner ответил на использование:
Convert.ToString(3, 2).PadLeft(4, '0')
Просто хочу добавить только для вас. Параметр int - это общее количество символов, которые ваша строка и параметр char являются символом, который будет добавлен, чтобы заполнить недостающее пространство в вашей строке. В вашем примере вам нужен вывод 0011, который имеет 4 символа и нуждается в 0, поэтому вы используете 4 как int param и '0' в char.
Ответ 3
string aaa = Convert.ToString(3, 2).PadLeft(10, '0');
Ответ 4
public static String HexToBinString(this String value)
{
String binaryString = Convert.ToString(Convert.ToInt32(value, 16), 2);
Int32 zeroCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(binaryString.Length) / 8)) * 8;
return binaryString.PadLeft(zeroCount, '0');
}
Ответ 5
Вы можете использовать следующие методы:
public static class BinaryExt
{
public static string ToBinary(this int number, int bitsLength = 32)
{
return NumberToBinary(number, bitsLength);
}
public static string NumberToBinary(int number, int bitsLength = 32)
{
string result = Convert.ToString(number, 2).PadLeft(bitsLength, '0');
return result;
}
public static int FromBinaryToInt(this string binary)
{
return BinaryToInt(binary);
}
public static int BinaryToInt(string binary)
{
return Convert.ToInt32(binary, 2);
}
}
Пример:
int number = 3;
string byte3 = number.ToBinary(8); // output: 00000011
string bits32 = BinaryExt.NumberToBinary(3); // output: 00000000000000000000000000000011
Ответ 6
Я создал метод динамической записи ведущих нулей
public static string ToBinary(int myValue)
{
string binVal = Convert.ToString(myValue, 2);
int bits = 0;
int bitblock = 4;
for (int i = 0; i < binVal.Length; i = i + bitblock)
{ bits += bitblock; }
return binVal.PadLeft(bits, '0');
}
Сначала мы преобразуем мое значение в двоичное.
Инициализация бит для установки длины для двоичного вывода.
Один битблок имеет 4 цифры. В for-loop мы проверяем длину нашего преобразованного двоичного значения и добавляем "биты" для длины для двоичного вывода.
Примеры:
Вход: 1 → 0001;
Вход: 127 → 01111111
и т.д....