【问题标题】:how to check if a number is a non integer? [closed]如何检查数字是否为非整数? [关闭]
【发布时间】:2023-03-29 05:18:01
【问题描述】:

如何在汇编语言中检查数字是否为非整数? 我的第一个想法是检查是否有剩余

【问题讨论】:

  • 你有什么格式的?显然通用寄存器只能包含整数,而 8086 没有 FPU。你可能有它的文本格式,在这种情况下你只需要检查一个小数点(或者如果你支持的话,一个指数)。您也可以将其作为内存中的浮点数。
  • 我需要找到 4 个整数的平均值,然后将其存储在内存位置
  • 整数从何而来?用户是否键入它们?它们是硬编码在程序中的吗?
  • @SevaAlekseyev 用户键入它们然后说它们存储在 AX 中,然后我找到它们的平均值
  • 当它们在 AX 中时,您就知道它是一个整数,因为 AX 不能存储其他任何东西。检查它是否是整数应该发生在您将用户输入转换为整数的位中。你打算怎么做?用户输入以字符(甚至键码)的形式出现。必须有一些将字符转换为数字的逻辑。

标签: assembly x86 x86-16 emu8086


【解决方案1】:

对于 4 个整数的平均值,如果 4 个整数的和不是 4 的倍数,则确切的结果不是整数,代码会将结果向上或向下舍入。 4 个整数之和可能需要使用一对寄存器来创建一个 32 位和以避免溢出,然后检查底部 2 位,然后 shrd + shr 将 32 位和转换为 16 结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多