2013-05-20 2 views
2

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

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

Этот вопрос выглядит так, как будто у него может быть ответ для вас http://stackoverflow.com/questions/13344041/c-sharp-bytearray-to-string-conversion-and-back –

+0

Я не знаю Python, но быстрый поиск в Google говорит о том, что 'struct.pack' принимает некоторое значение (ы) и превращает их в строку с заданным форматом. И этот 'struct.unpack' берет строку и пытается преобразовать эту строку в структуру C, указанную в данном формате. И ваш пример здесь принимает некоторую строку 'str' (теоретически это шестнадцатеричная строка) преобразует ее в int из базы 16, упаковывает ее в целую целочисленную строку на 64 бита, а затем распаковывает ее в число с плавающей запятой двойной точности. До сих пор я прав? – Tory

ответ

0

Это зависит от вашей цели. Если это преобразование из шестнадцатеричной в два раза, вы можете использовать следующие методы C#: How to: Convert Between Hexadecimal Strings and Numeric Types (C# Programming Guide)

Если то, что вам нужно, это сериализации/десериализации, например, для сетей, вы можете найти хорошую информацию here.