当前位置: 代码迷 >> 驱动开发 >> 对于32位微处理器架构,unsigned long long和typedef{unsigned int low,unsigned int high}u_int64
  详细解决方案

对于32位微处理器架构,unsigned long long和typedef{unsigned int low,unsigned int high}u_int64

热度:476   发布时间:2016-04-28 09:58:36.0
对于32位处理器架构,unsigned long long和typedef{unsigned int low,unsigned int high}u_int64
对于32位处理器架构,unsigned long long和typedef{unsigned int low,unsigned int high}u_int64_t 有什么不同?

unsigned longlong无法得到硬件上的支持,但是编译器可以支持unsigned long long, 但如果有三方库定义了typedef{unsigned int low,unsigned int high}u_int64_t,那该如何和unsigned long long对应上呢。
------解决思路----------------------
用unsigned long long的话,就是告诉编译器我这是64位数,日后用于其上的加减乘除移位等等运算,编译器就帮你自动地实现32位到64位的转换,比如unsigned long long temp =0xffffffff * 2;就能得到一个正确的结果。而实际编译器也是用typedef{unsigned int low,unsigned int high}u_int64_t这样的方式在32位总线上实现了64位数,中间的算法转换对源代码隐藏了而已。
而如果你自己应用了typedef{unsigned int low,unsigned int high}u_int64_t这样的结构,整个的算法过程就得你自己实现了。 
  相关解决方案