В любом случае мы можем работать с шестнадцатеричными байтами и символами, как в C ++? - PullRequest
1 голос
/ 11 октября 2010

Ну, мой вопрос прост и понятен.

Можно ли как-нибудь использовать шестнадцатеричные значения, как в c ++?

Я собираюсь написать двоичные файлы, но для этого у меня будетдля определения определенных символов, например, таких.

\ x00 \ x00 \ x11 \ x22 \ x33 \ x00 \ x00

Сначала мне нужно преобразовать подобные вещи в байтовый массив, изатем запишите его в двоичный текстовый файл.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 11 октября 2010

Нет, это проблема современных компиляторов, таких как VB.NET.Больше нет однозначного сопоставления между байтами и строками, когда Unicode стал предпочтительным способом обработки текста.Кодовые точки, такие как 0x80, не имеют соответствующего символа, он будет работать, когда вы преобразуете строку в байты.

Вам потребуется работать с массивом Byte () в вашем коде.Точный эквивалент для вашего примера:

    Dim data As Byte() = {&H0, &H0, &H11, &H22, &H33, &H0, &H0}
0 голосов
/ 12 октября 2010

Здесь есть еще один пост о преобразовании текстовых HEX-строк в байтовый массив.

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

Поместите этов методе расширения, который расширяет класс STRING:

http://msdn.microsoft.com/en-us/library/bb384936.aspx

И вы можете получить строку кода, похожую на эту:

Dim Bytes() = "\x00\x00\x11\x22\x33\x00\x00".ToBytes

довольно чертовски близко к ощущению встроенного.

...