cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 5085|回复: 8

[fx-9860/9750] [SH]如何在9860SDK中使用64位无符号整数?

[复制链接]
发表于 2012-8-26 19:00:04 | 显示全部楼层 |阅读模式
如题,移植Eigenmath遇到的问题。
我在sh的官方文档只见到处理64位乘法的一个函数
  1. long dmuls_h(long data1,long data2)
  2. 带符号的 32 位 x 带符号的 32
  3. 位执行带符号 64 数据的乘法,
  4. 并返回一个高 32 位的结果

  5. long dmuls_l(long data1,long data2)
  6. 带符号的 32 位 x 带符号的 32
  7. 位执行带符号 64 数据的乘法,
  8. 并返回一个低 32 位的结果
复制代码

蛋疼了,long long和__int64都用不成了..

评分

参与人数 1金钱 +3 收起 理由
GWHBOB + 3 加油

查看全部评分

 楼主| 发表于 2012-8-26 19:21:53 | 显示全部楼层
另外我吐槽一下eigenmath作者的不良习惯:因为是使用c++,允许不同函数拥有同一个函数名(编译时时根据参数表来判断,说不定会生成一些什么_func_int_int或者_func_void...)
我打算全改成c的,一遍没看完吐了...prototypes.h就18.8KB....尤其是一个叫decomp的函数,同一个名字有两个实现(decomp_void,decomp_int)...最后我还是放弃了,用c++吧..
 楼主| 发表于 2012-8-26 19:57:18 | 显示全部楼层
另外附上维基百科里面关于CAS的对比,包括了几乎所有已知的CAS
http://en.wikipedia.org/wiki/List_of_computer_algebra_systems
CASIO的Classpad Manager和CASSIOPEIA(CASIO-MAPLE )
以及ti买来的Derive,TI-Nspire CAS (Computer Software)都在列
发表于 2012-8-26 21:12:42 | 显示全部楼层
支持一下,希望能成功移植,fx-9860就会有一个真正可靠的CAS了。
发表于 2012-8-26 21:57:08 | 显示全部楼层
本帖最后由 朔雪X忆 于 2012-8-27 08:51 编辑

解决方法是……改用GCC??
见此:
http://www.cemetech.net/forum/viewtopic.php?t=8025&start=20
-更新

不对……文中所述的是PRIZM GCC吧……

-再更新
在Cemetech问了一下,原帖在
http://www.cemetech.net/forum/viewtopic.php?t=8112
……其实可以用long long?
发表于 2012-8-27 12:25:39 | 显示全部楼层
c++函数重载很蛋疼……
不过我看编译器手册那个sh是可以编译c++的呀
另外64位的话自己考虑用位段能不能实现吧……
 楼主| 发表于 2012-8-27 21:10:01 | 显示全部楼层
5# 朔雪X忆

实测用不了longlong
 楼主| 发表于 2012-8-27 21:43:52 | 显示全部楼层
好吧我手贱,我把long long全部换成long了
结果...crash了..
tuamath_scr.JPG
问题应该就是出在这个高精度运算上
没改之前精度高的吓人的..
tuamath_scr2.JPG
发表于 2012-9-4 21:18:17 | 显示全部楼层
按那个论坛里面所说,用两个long的结构实现long long不知道是否可能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-4-20 16:34 , Processed in 0.081007 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表