【问题标题】:Hexadecimal subtraction using only string variables仅使用字符串变量的十六进制减法
【发布时间】:2014-05-20 09:39:09
【问题描述】:

我必须字符串变量

A = 'AA';
B = 'A';

对于创建两个十六进制数相减的算法有什么建议吗? 第一个数字总是更大。 所以 A-B 给出结果'A0';

A = 'AA';
B = 'B';

所以结果是'9F'

我可能会想到 switch-case 的可能性,但无法解决这个问题

【问题讨论】:

  • 1.转换为数字,2. 减法,3. 转换为字符串。完成。
  • 有点不清楚你为什么不对数字类型做减法。 Hoverwer,您可以实现某种半字节全减法器,它会考虑借位并对字符进行操作。
  • 因为字符串可能比普通整数长很多

标签: string variables hex freepascal


【解决方案1】:

如果你想要这个纯字符串逻辑,而不转换为十进制,你需要从后面开始扫描两个字符串,一次从两个字符串中读取一个数字(并将一个数字写入结果),维护一个进行以添加到下一个等。

当然,您需要注意那里的不等长度,并确保正确设置输出长度。 (或反转结果)

【讨论】:

  • 将此方法用于仅反转整数数组和用于存储字段减值的附加变量,因此从下一个数字中减去它。当从较小的数字中减去较大的数字时,它已经成功了!
猜你喜欢
  • 2017-12-21
  • 1970-01-01
  • 2016-06-12
  • 2010-10-04
  • 2014-03-26
  • 2019-07-27
  • 2014-03-07
  • 1970-01-01
  • 2018-03-05
相关资源
最近更新 更多