抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

秦九韶算法-将b进制数转化成十进制

有二进制1010

取出 第一位

1

1 * 2 + 0 = 2

10 * 2 + 1 == 2 * 2 + 1

10 = 5

5 * 2 + 0 = 10

有二进制1010

二进制转换成十进制:基数乘以权,然后相加

$$ 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0$$

$$ = ((1 * 2 + 0) * 2 + 1 ) * 2 + 0$$

1
2
3
4
5
6
int get(string s, b) {
int res = 0;
for(auto c : s)
res = res * b + c- '0';
return res;
}

评论