Я пытаюсь передать некоторый код, и теперь я ударил липкий бит. Исходный код находится на C++. Мне нужно портировать объединение, имеющее два 32-битных ints (в массиве) и double.Как связать соединение C++ с Julia
До сих пор у меня есть:
I1 = UInt32(56) # arbitrary integer values for example
I2 = UInt32(1045195987)
# do transforms on I1 and I2 as per the code I'm porting
A = bits(I1)
B = bits(I2)
return parse(Float64, string(A,B))
ли это способ сделать это? Строковая операция кажется дорогой. Любые советы приветствуются.
Это может выглядеть хакерским, но 'afloat64 = reinterpret (Float64, [I1; I2]) [1]' мог бы сделать то же самое. Существуют другие способы, которые вы могли бы сделать с типами «неизменяемых» и «небезопасными», чтобы получить тот же эффект. –
Oooh, который выглядит лучше. Я попробую. Я просто изучаю язык и люблю его. Я решил, что лучше всего научиться этому, чтобы преобразовать часть нашего кода на C++. До сих пор опыт обучения был отличным. –
Похоже, что это только значение reinterpret является первым значением в массиве. reinterpret (Float64, [UInt32 (101010100020), UInt32 (1010001010)]) создает InexactError –