Swift BitConverter.DoubleToInt64位等效值

Swift BitConverter.DoubleToInt64位等效值,swift,bit,data-conversion,Swift,Bit,Data Conversion,我需要快速实现C#位转换器。doubleToInt64位(doubleValue)。 我发现现场的C#实施只是 在c#中,我有一种方法: public long EncodeValue(double doubleValue) { return BitConverter.DoubleToInt64Bits(doubleValue); } 但我需要在ios的Swift中使用相同的功能。 大概是这样的: func EncodeValue(doubleValue: Double) {

我需要快速实现C#位转换器。doubleToInt64位(doubleValue)。 我发现现场的C#实施只是

在c#中,我有一种方法:

public long EncodeValue(double doubleValue)
{
    return BitConverter.DoubleToInt64Bits(doubleValue);
}
但我需要在ios的Swift中使用相同的功能。 大概是这样的:

func EncodeValue(doubleValue: Double)
{
    return SwiftDoubleToInt64Bits(doubleValue)
}
Double
的属性返回具有相同内存表示形式的(无符号)64位整数:

let doubleValue = 12.34
let encoded = doubleValue.bitPattern // UInt64
反向转换是用

let decoded = Double(bitPattern: encoded)
print(decoded) // 12.34
同样,您可以在
Float
UInt32
之间进行转换

对于独立于平台的内存表示(例如“big-endian”),请使用

Double
的属性返回具有相同内存表示形式的(无符号)64位整数:

let doubleValue = 12.34
let encoded = doubleValue.bitPattern // UInt64
反向转换是用

let decoded = Double(bitPattern: encoded)
print(decoded) // 12.34
同样,您可以在
Float
UInt32
之间进行转换

对于独立于平台的内存表示(例如“big-endian”),请使用


到目前为止你尝试了什么?到目前为止你尝试了什么?有没有一种简单的方法来交换小的和大的endian?@Vyacheslav:是的!有没有一个简单的方法来交换小的和大的端点?@Vyacheslav:是的!