注册 登录
编程论坛 汇编论坛

已知2的n次方的值,如何求n?

ycxdtdz 发布于 2011-07-15 13:57, 705 次点击
已知2的n次方的值,如何求n?
3 回复
#2
zklhp2011-07-15 19:25
1 n是个整数呗 从零开始挨个试

2   n =lg(2^n)/lg2 也就是用对数

3   2^5=32=100000B 2^10=10000000000B 2^1=10B 看出来了?

欢迎补充
#3
ansic2011-07-16 22:35
根据2的N次方二进制码里只有一个1来通过循环右移与1比较测试。
程序代码:
        
        mov ax,1024 ;假如2的n次方是1024,
        mov cx,16   ;循环移动次数
        mov bx,0    ;计数器
s:
        inc bx
        rol ax,1    ;循环右移
        push ax     ;保存
        and ax,1    ;与1比较
        cmp ax,1
        jz ok       ;是则退出
        pop ax      ;否则继续
        jmp s
ok:
        sub bx,16   ;结果在bx里
        neg bx
#4
色狼SL2011-07-24 18:26
谢谢  3楼   
1