Строка к двоичной в C #

У меня есть функция для преобразования строки в шестнадцатеричную,

public static string ConvertToHex(string asciiString) { string hex = ""; foreach (char c in asciiString) { int tmp = c; hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString())); } return hex; } 

Не могли бы вы помочь мне написать еще одну строку для двоичной функции, основанной на моей выборке?

 public static string ConvertToBin(string asciiString) { string bin = ""; foreach (char c in asciiString) { int tmp = c; bin += String.Format("{0:x2}", (uint)System.Convert.????(tmp.ToString())); } return bin; } 

Ну вот:

 public static byte[] ConvertToByteArray(string str, Encoding encoding) { return encoding.GetBytes(str); } public static String ToBinary(Byte[] data) { return string.Join(" ", data.Select(byt => Convert.ToString(byt, 2).PadLeft(8, '0'))); } // Use any sort of encoding you like. var binaryString = ToBinary(ConvertToByteArray("Welcome, World!", Encoding.ASCII)); 

Похоже, вы в основном хотите взять строку ASCII или, более предпочтительно, байт [] (так как вы можете закодировать свою строку в байт [], используя ваш предпочтительный режим кодирования) в строку из них и нули? т.е. 101010010010100100100101001010010100101001010010101000010111101101010

Это сделает это для вас …

 //Formats a byte[] into a binary string (010010010010100101010) public string Format(byte[] data) { //storage for the resulting string string result = string.Empty; //iterate through the byte[] foreach(byte value in data) { //storage for the individual byte string binarybyte = Convert.ToString(value, 2); //if the binarybyte is not 8 characters long, its not a proper result while(binarybyte.Length < 8) { //prepend the value with a 0 binarybyte = "0" + binarybyte; } //append the binarybyte to the result result += binarybyte; } //return the result return result; } 

Следующее даст вам шестнадцатеричное кодирование для младшего байта каждого символа, который выглядит так, как вы просите:

 StringBuilder sb = new StringBuilder(); foreach (char c in asciiString) { uint i = (uint)c; sb.AppendFormat("{0:X2}", (i & 0xff)); } return sb.ToString(); 

Вот функция расширения:

  public static string ToBinary(this string data, bool formatBits = false) { char[] buffer = new char[(((data.Length * 8) + (formatBits ? (data.Length - 1) : 0)))]; int index = 0; for (int i = 0; i < data.Length; i++) { string binary = Convert.ToString(data[i], 2).PadLeft(8, '0'); for (int j = 0; j < 8; j++) { buffer[index] = binary[j]; index++; } if (formatBits && i < (data.Length - 1)) { buffer[index] = ' '; index++; } } return new string(buffer); } 

Вы можете использовать его так:

 Console.WriteLine("Testing".ToBinary()); 

и если вы добавите «true» в качестве параметра, он автоматически отделит каждую двоичную последовательность.

  • Являются ли HLists не более чем сложным способом написания кортежей?
  • Почему Java API использует int вместо короткого или байтового?
  • .NET: Как вы получаете Тип нулевого объекта?
  • Как обращаться с неправильным вводом типа данных
  • Что такое экзистенциальный тип?
  • Как проверить соответствие типа переменной Тип, хранящийся в переменной
  • Как определить тип MIME загруженного файла в ASP.NET?
  • Вопрос о поведении C для неподписанного целого нижнего streamа
  • Почему некоторые люди предпочитают «T const &» над «const T &»?
  • Создание серии дат - использование типа даты в качестве входных данных
  • В чем разница между типом и classом?
  • Interesting Posts

    Должен ли я использовать static_cast или reinterpret_cast при запуске void * на все

    Bootstrap 4 Navbar и заполняющая высота контента flexbox

    Сортировка массива объектов SimpleXML

    Почему функция Array’s == возвращает true для Array (1,2) == Array (1,2)?

    В чем разница между запуском @powershell и powershell (любая команда с @ на передней панели)?

    Запускать внешнюю программу с Java, читать вывод, разрешать прерывание

    Файл .app появляется в красном (отсутствует) в новых проектах с Xcode 4

    Разница между разветвителем Ethernet и коммутатором

    Неожиданный префикс пространства имен «xmlns», найденный для тега LinearLayout

    Android Динамически загружает Listview в конец прокрутки?

    Каков наилучший способ создать резервную копию всей библиотеки dvds?

    Как подсчитать количество заданных битов в 32-битовом целое?

    React «не может читать свойство неопределенного» при использовании карты

    Шифрование файлов на SD-карте

    Каково ключевое слово «продолжить» и как оно работает на Java?

    Давайте будем гением компьютера.