1

我有一个二进制数,当我将它表示为十进制时,我需要知道该二进制数是否在数字中的任何位置都有 0 。

所以,我不能将它转换为字符串或类似的东西。

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

例如

10111100101 = 1509
101111001011 = 3019

我需要检测那些 0

谢谢!

4

2 回答 2

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
于 2013-09-08T17:12:18.307 回答
0

你能做到的最好的方法是

  1. 将二进制数转换为十进制形式
  2. 通过计数器扫描其位为 0
  3. 如果找到零,请执行此操作,否则执行此操作...取决于您...

可以很容易地为此设计适当的代码。:)

于 2013-09-08T23:49:45.827 回答