编程论坛
注册
登录
编程论坛
→
汇编论坛
已知2的n次方的值,如何求n?
ycxdtdz
发布于 2011-07-15 13:57, 705 次点击
已知2的n次方的值,如何求n?
3 回复
#2
zklhp
2011-07-15 19:25
1 n是个整数呗 从零开始挨个试
2 n =lg(2^n)/lg2 也就是用对数
3 2^5=32=100000B 2^10=10000000000B 2^1=10B 看出来了?
欢迎补充
#3
ansic
2011-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
色狼SL
2011-07-24 18:26
谢谢 3楼
1