如何检测二进制数在十进制中是否有0

问题描述 投票:0回答:2

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

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

我需要某种方法来将其视为二进制文件并从那里检测它。

例如

10111100101 = 1509
101111001011 = 3019

我需要检测那些0

谢谢!

assembly binary nasm
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

1
投票

最好的方法是

  1. 将二进制数转换为十进制形式
  2. 通过计数器扫描其数字是否为 0
  3. 如果找到零,则执行此操作,否则执行此操作...这是您的选择

可以轻松地为此设计适当的代码。 ☺

© www.soinside.com 2019 - 2024. All rights reserved.