![]() |
[求助] 2个64bit的无符号整数相乘,C++如何实现最快? |
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
点评
根据你的提示,在vs里下拉解决方案平台,发现是win32,改成x64,编译就通过了,而且运行结果正确。
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
点评
其实我的吐槽主要是针对msc的,因为gcc严格遵循各种C++标准(比如C++11甚至C++17)而MS总是给C++捣乱(哪怕--std=c++17都干不动这伙计……)
sscanf sscanf_s 都是ms先用的, sscanf_s是 sscanf 的改进版本,ms专有,gcc显然不支持, _s 表示safe
windows的library是gcc生成的? 先有windows还是linux? 先有msc还是gcc?
c是最低级的高级语言,支持汇编语言,曾经被誉为系统编程语言.应用于开发新的系统.如今辉煌不再
改成sscanf吧,sscanf_s是微软的。但那个UnsignedMultiply128,gcc是否支持就不清楚了。
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
| |
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
|
点评
测试了一下,好像GCC的支持比我写的汇编好一点,我以为gcc会自动重命名寄存器,其实不会……导致我的代码里面多了一句“把变量复制进%rdx”(以及,把结果复制出来)
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
| ||
毋因群疑而阻独见 毋任己意而废人言
毋私小惠而伤大体 毋借公论以快私情 |
||
小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )
GMT+8, 2025-3-14 14:22 , Processed in 0.118905 second(s), 15 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.