如果你想使用对数,你可以.
将log 2(b)定义为log(b)/ log(2)或ln(b)/ ln(2)(它们是相同的).
重复以下步骤:
将n定义为log 2(b)的整数部分.在b的二进制表示1
中存在第n 个位置.
设置b = b - 2 n
重复第一步直到b = 0.
工作示例:将2835转换为二进制
log 2(2835)= 11.47 .. => n = 11
二进制表示在2 11位置具有1 .
2835 - (2 11 = 2048)= 787
log 2(787)= 9.62 ... => n = 9
二进制表示在2 9位置具有1 .
787 - (2 9 = 512)= 275
log 2(275)= 8.10 ... => n = 8
二进制表示在2 8位置具有1 .
275 - (2 8 = 256)= 19
log 2(19)= 4.25 ... => n = 4
二进制表示在2 4位置具有1 .
19 - (2 4 = 16)= 3
log 2(3)= 1.58 .. => n = 1
二进制表示在2 1位置具有1.
3 - (2 1 = 2)= 1
log 2(1)= 0 => n = 0
二进制表示在2 0位置具有1 .
我们知道的二进制表示具有1
S IN的2 11,2 9,2 8,2 4,2 1,和2 0的位置:
2^ 11 10 9 8 7 6 5 4 3 2 1 0
binary 1 0 1 1 0 0 0 1 0 0 1 1
Run Code Online (Sandbox Code Playgroud)
所以2835的二进制表示是101100010011
.