【发布时间】:2013-09-12 05:45:57
【问题描述】:
我有一个二进制数,当我将它表示为十进制时,我需要知道该二进制数在数字中是否有 0。
所以,我无法将它转换为字符串或类似的东西。
我需要某种方法将其视为二进制文件并从那里进行检测。
例如
10111100101 = 1509
101111001011 = 3019
我需要检测那些 0
谢谢!
【问题讨论】:
我有一个二进制数,当我将它表示为十进制时,我需要知道该二进制数在数字中是否有 0。
所以,我无法将它转换为字符串或类似的东西。
我需要某种方法将其视为二进制文件并从那里进行检测。
例如
10111100101 = 1509
101111001011 = 3019
我需要检测那些 0
谢谢!
【问题讨论】:
我知道的唯一方法是将数字部分转换为十进制,而不记住结果。像这样的:
; 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
【讨论】:
10是一个常数。
你能做到的最好方法是
可以很容易地为此设计适当的代码。 :)
【讨论】: