Obj C 等价于 Double.doubleToLongBits
我正在将一些 Java 代码移植到 Objective C,并且对位的了解足够令人头疼。有人可以向我指出 Double.doubleToLongBits 和 Float.floatToIntBits 的 objC 等效项吗?
I am porting some Java code to Objective C and know enough bitwise to get a headache. Can someone point me to the objC equivalents to Double.doubleToLongBits and Float.floatToIntBits?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 jojoba 指出的,
long
不保证是 64 位宽(尽管他说它是 32 位是错误的 -long
是 64 位)在 64 位平台上的 Objective-C 中为位宽)。也就是说,我将使用实际的固定宽度类型而不是long long
。As jojoba noted,
long
isn't guaranteed to be 64 bits wide (though he's wrong to say that it's 32 bits --long
is 64 bits wide in Objective-C on 64-bit platforms). That said, I would use an actual fixed width type instead oflong long
.在 Objective C 中,没有安全的方法将 double 的位分配给 long 。
在Java中,
long
和double
都是64位。在某些情况下,对于 Objective C,long
是 32 位,double
是 64 位。您应该使用
long long
来代替。There's no safe way to assign the bits of a
double
to along
in Objective C.In Java,
long
anddouble
are both 64bits. In some cases for Objective C,long
is 32bit anddouble
is 64bit.You should use
long long
instead.