如何检测二进制数是否在Decimal中为0

时间:2013-09-08 17:02:44

标签: assembly binary nasm

我有一个二进制数字,当我将其表示为十进制时,我需要知道该二进制数字的数字是否 0

所以,我无法将其转换为String或类似的东西。

我需要一些方法来对待它,就像二进制文件一样,并从那里检测它。

例如

10111100101 = 1509
101111001011 = 3019

我需要检测那些0

谢谢!

2 个答案:

答案 0 :(得分:1)

我知道的唯一方法是将数字部分转换为十进制,而不记住结果。像这样:

; number is in eax
    mov  ecx, 10
loop:
    cdq
    div  ecx
    test edx, edx
    jnz  loop
    test eax, eax
    jnz  zero_found

; zero not found

    ret

zero_found:

    ret

答案 1 :(得分:0)

你能做到的最好方法是

  1. 将二进制数转换为十进制数
  2. 通过计数器
  3. 扫描其位为0
  4. 如果发现零,请执行此操作,否则执行此操作...取决于您...
  5. 可以轻松设计适当的代码。 :)