vc++32位乘法 结果的问题

baidu_38722979 2017-07-19 10:54:40
rt.
vc++ 支持32位计算,但不支持64位,如果用到64位,需要_int64类型..
那么,我定义一个 _int64型 sum.
再定义一个32位数据long. a..
a = 0x7f55fef3;
sum=a*a.
但这时查看变量值 ,sum只是保存了结果的低32位字节,高32位丢掉了..
如何 得到完整的64位结果?
请大神指点下.xie
...全文
133 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_38722979 2017-07-20
  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
先做类型转换,或先赋值到I64上 LONGLONG rst; LONG a=INT_MAX,b=456; rst = (LONGLONG)a * (LONGLONG)b; 或 rst = a; rst *= b;
感谢,是这里的问题.
zgl7903 2017-07-19
  • 打赏
  • 举报
回复
先做类型转换,或先赋值到I64上 LONGLONG rst; LONG a=INT_MAX,b=456; rst = (LONGLONG)a * (LONGLONG)b; 或 rst = a; rst *= b;
baidu_38722979 2017-07-19
  • 打赏
  • 举报
回复

以上是运算的结果,把高位全部丢掉了.

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧