当前位置:  开发笔记 > 编程语言 > 正文

长期在32位机器上实现

如何解决《长期在32位机器上实现》经验,为你挑选了2个好方法。

根据c99标准,大小long long应至少为64位.如何在32位机器中实现(例如,2 long longs的加法或乘法).另外,long longC++中的等价物是什么.



1> Nils Pipenbr..:

C++中的等价物也很长.它不是标准所要求的,但大多数编译器都支持它,因为它非常有用.

它是如何实现的?大多数计算机体系结构已经内置了对多字加法和减法的支持.它们不直接执行64位添加,但使用进位标志和一个特殊的add-instruction来从两个32位的加法构建64位加法.

减法也存在相同的扩展(在这些情况下,进位称为借位).

在没有进位标志的帮助下,可以通过较小的乘法构建长字乘法和除法.有时简单地一点一点地进行操作会更快.

有些架构根本没有任何标志(一些DSP芯片和简单的微型).在这些架构上,必须通过逻辑运算来检测溢出.这些机器上的多字算术往往很慢.



2> Edouard A...:

在IA32架构中,使用两个32位寄存器(eax和edx)实现64位整数.

C++存在特定于平台的等价物,您可以在可用的情况下使用stdint.h标头(boost为您提供一个).

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有