无心人 发表于 2009-2-8 21:26:23

:lol

呵呵
==================================
不知道是否还能找到一个15条内的非预存数据的版本
==================================
跳转表的版本显得有点啰嗦了
虽然执行路径短
而且存在预存数据
即使是外部汇编

gxqcn 发表于 2009-2-9 10:32:28

回复 59# 无心人 的帖子

将 sbb r,i 改成 sbb r,r,速度将更快(尤其在早期的CPU上),虽然要增加一条指令:mov edx, n
mov eax, 10
xor ecx, ecx
cmp edx, 1000000000 //10
sbb eax, ecx
cmp edx, 100000000 //9
sbb eax, ecx
cmp edx, 10000000 //8
sbb eax, ecx
cmp edx, 1000000 //7
sbb eax, ecx
cmp edx, 100000 //6
sbb eax, ecx
cmp edx, 10000 //5
sbb eax, ecx
cmp edx, 1000 //4
sbb eax, ecx
cmp edx, 100 //3
sbb eax, ecx
cmp edx, 10//2
sbb eax, ecx
cmp edx, 1   //1
sbb eax, ecx

无心人 发表于 2009-2-9 10:53:59

:)

CMP 也应该是吧
不过增加的就多了
页: 1 2 3 4 5 6 [7]
查看完整版本: 求一个无符号整数的10进制位数