Строка с шестнадцатеричным обозначением С# Build
Как создать строку escape-последовательности в шестнадцатеричной форме.
Пример:
string s = "\x1A"; // this will create the hex-value 1A or dec-value 26
Я хочу иметь возможность строить строки с шестнадцатеричными значениями от 00 до FF, как это (в этом примере 1B)
string s = "\x" + "1B"; // Unrecognized escape sequence
Может быть, есть другой способ создания шестнадцатеричных строк...
Ответы
Ответ 1
Вы не храните шестнадцатеричные значения в строках.
Вы можете, но это будет просто строка, и ее нужно будет отличить от целого числа или байта, чтобы действительно прочитать его значение.
Вы можете назначить шестнадцатеричное значение как литерал для int или байта, хотя:
Byte value = 0x0FF;
int value = 0x1B;
Итак, его легко можно передать шестнадцатеричный литерал в вашу строку:
string foo = String.Format("{0} hex test", 0x0BB);
Что бы создать эту строку "126 hex test".
Но я не думаю, что вы хотели?
Ответ 2
Пожалуйста, избегайте escape-последовательности \x
. Трудно читать, потому что там, где он останавливается, зависит от данных. Например, насколько сильно разница между этими двумя строками?
"\x9Good compiler"
"\x9Bad compiler"
В первом, "\ x9" - это вкладка - escape-последовательность останавливается там, потому что "G" не является допустимым шестнадцатеричным символом. Во второй строке "\ x9Bad" - это все escape-последовательность, оставляя вас с некоторым случайным символом Unicode и "компилятором".
Я предлагаю вам использовать escape-последовательность\u вместо:
"\u0009Good compiler"
"\u0009Bad compiler"
(Конечно, для вкладки вы использовали бы \t
, но я надеюсь, что вы понимаете, что я имею в виду...)
Это несколько в стороне от первоначального вопроса, конечно, но на это уже был дан ответ:)
Ответ 3
Здесь выдается код "\ u" для шестнадцатеричных кодов символов 16 бит.
Console.WriteLine( "Look, I'm so happy : \u263A" );