You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Card平台下两short无符号加法的进位位获取方法

如何在Java Card中将两个short当作无符号类型相加并获取进位位?

我希望将两个short当作无符号类型进行加法运算,并获取加法产生的进位位。例如,以下二进制表示的short:

1111111111111111 (-1) +
0000000000000001 (1)
----------------
0000000000000000 (0)

它们相加产生的进位位为1。

是否有办法从补码加法中获取该进位位?

解决方案的唯一限制是:不能使用int、long、char这些数据类型,因为我在Java Card平台上开发


更新

我需要实现这个功能的原因是用两个short来模拟整数加法。我正在Java Card平台上开发,该平台不支持整数类型,因此想用两个short来表示一个整数。

WJS的答案完全符合我的需求。以下代码块展示了我想要实现的功能:

short xA = (short) 0b1111111111111111, xB = (short) 0b1111111111111111;
short yA = (short) 0b0000000000000000, yB = (short) 0b0000000000000001;
short targetA, targetB;

targetA = (short) (xA + yA + (xB < 0 && yB < 0 || xB < 0 && yB >= -xB || yB < 0 && xB >= -yB ? 1 : 0));
targetB = (short) (xB + yB);

其中A是整数的高位部分,B是低位部分。
这段代码等价于整数加法中的target = x + y。


内容的提问来源于stack exchange,提问作者the thinker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:05:33