二进制转十进制(c语言)
生活随笔
收集整理的這篇文章主要介紹了
二进制转十进制(c语言)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
把一個(gè)二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)。
輸入格式
第一行一個(gè)正整數(shù) n ?(1≤n≤30) ?表示二進(jìn)制數(shù)的長度。
第二行一個(gè)二進(jìn)制數(shù)。
輸出格式
輸出一個(gè)整數(shù),表示對應(yīng)的十進(jìn)制數(shù)。
例:輸入
5
10101
輸出:
21
整體思路:
利用for語句進(jìn)行二進(jìn)制轉(zhuǎn)換為十進(jìn)制
二進(jìn)制10101轉(zhuǎn)為十進(jìn)制,因?yàn)橐?開頭,所以這是正整數(shù),計(jì)算如下所示:
#include <stdio.h> #include <math.h> #include <string.h>int main() {int i, d, a, b, sum = 0;char str[30];//字符數(shù)組string,長度30scanf("%d", &d);//輸入二進(jìn)制長度scanf("%s", str);//輸入二進(jìn)制數(shù)for (i = 0; i < d; i++) {//二進(jìn)制轉(zhuǎn)為十進(jìn)制要從右到左用二進(jìn)制的每個(gè)數(shù)去乘以2的相應(yīng)次方求和a = str[i] - 48;b = pow(2, d - 1 - i);//2的次方sum += a * b;//十進(jìn)制要從右到左用二進(jìn)制的每個(gè)數(shù)去乘以2的相應(yīng)次方相加}printf("%d\n", sum);//輸出十進(jìn)制整數(shù)return 0; }總結(jié)
以上是生活随笔為你收集整理的二进制转十进制(c语言)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 错过这15个顶级Python库,你就不算
- 下一篇: 手机APP三年内将彻底消失,以后全靠H5