С# эквивалент Python struct.pack?

Есть ли какая-либо функция, эквивалентная Python struct.pack и strike.unpack в C#, которая позволяет мне упаковывать и распаковывать значения, подобные этому?

def hexlongbits2double(str):
    return struct.unpack('d', struct.pack('Q', int(str, 16)))[0] 

person user2402004    schedule 20.05.2013    source источник
comment
этот вопрос выглядит так, как будто у него может быть ответ для вас в преобразование строк и обратно"> stackoverflow.com/questions/13344041/   -  person Kristian K.    schedule 20.05.2013
comment
Я не знаю Python, но быстрый поиск в Google говорит, что struct.pack принимает некоторые значения и превращает их в строку с заданным форматом. И этот struct.unpack берет строку и пытается преобразовать эту строку в структуру C, указанную в заданном формате. И ваш пример здесь берет некоторую строку str (которая теоретически является шестнадцатеричной строкой), преобразует ее в int из базы 16, упаковывает ее в 64-битную целочисленную строку, а затем распаковывает ее в число с плавающей запятой двойной точности. Я прав до сих пор?   -  person Tory    schedule 20.05.2013


Ответы (1)


Это зависит от вашей цели. Если это преобразование из шестнадцатеричного в двойное, вы можете использовать следующие методы C#: Как: Преобразование между шестнадцатеричными строками и числовыми типами (Руководство по программированию на C#)

Если вам нужна сериализация/десериализация, например, для работы в сети, вы можете найти полезную информацию здесь.

person Roman Hwang    schedule 20.05.2013