【填空题】二进制串转十进制整数
2016-12-31 16:59
302 查看
char* p = "1100"; int n = 0; for(int i=0;i<strlen(p); i++) { n = n * 2 + (p[i] - '0'); } printf("%d\n", n); return 0;
注意点:p[i] 可以写为 *(p+i),'0' 可以写为 48,注意二进制的ASCII码制和十进制的关系
我们设断点单步调试发现的规律如下:
n=0*2+1,n=1
n=1*2+1,n=3
n=3*2+0,n=6
n=6*2+0,n=12
反思:如果不能用pow函数的话,只能是从头向后算的方法,比如类比一个十进制数234,首先取2出来乘10,然后接着取3出来加上前面的结果也就是20,得23再乘10,再取4出来加上前面的结果也就是230,最后为234,那么乘法的次数为有多少位这样的数就乘多少次。
总结:除了用pow函数外,可以用n=n*数制+当前指针指向的值。
相关文章推荐
- 十进制的正整数,负数, 小数转为二进制.八进制.十六进制的方法 包括原码,反码,补码的介绍
- 算法导论 31.1-13 将二进制整数转化为相应的十进制表示
- 整数十进制转换为二进制和十六进制
- 一个整数的二进制序列倒置后再转换为十进制的整数
- 剑指offer——面试题10输入一个十进制整数,统计其中二进制1的个数
- 整数的十进制、二进制、八进制与十六进制
- 二进制与十进制整数,浮点数相互转换
- 输出从0到max_num中用二进制和十进制表示都是回文数的整数
- 10--输入一个十进制的整数,转化为二进制,输出有多少个1
- 一个函数把十进制整数转换为二进制…
- 剑指offer——面试题10输入一个十进制整数,统计其中二进制1的个数
- 字符串处理函数:识别一字符串所属的数值常量类型(十六进制、二进制、十进制整数,浮点数)
- HDU-2051 Bitset 进制转化(十进制整数向二进制整数转化)
- 数值转换:十进制正整数转二进制
- 一个十进制整数转换成二进制含多少个1
- 十进制整数转换为二进制整数
- 求一个十进制正整数在二进制表示中的二进制数字个数
- Java中二进制和十进制整数之间相互转换的思考
- 一个十进制整数转换成二进制含多少个1
- 一个十进制的正整数在二进制表示中的数字个数(C实现)