程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 二進制整數轉十進制,二進制整數十進制

二進制整數轉十進制,二進制整數十進制

編輯:關於C語言

二進制整數轉十進制,二進制整數十進制


校OJ的水題,但是可以創新一下用位運算來計算

但是要注意 C語言中的數字常數默認類型為int 位移過程中可能出現溢出

 

 

Description

給出一個二進制的非負整數x,x<232,把它轉換成十進制數輸出。

 

 

Input   輸入為多行,每行一個二進制非負整數x。

Output  每行輸出x對應的十進制數值。 

Sample Input

0 1 01 10 11 100001 1111111111111111

Sample Output

0 1 1 2 3 33 65535

HINT

 注意數據范圍!!!

 

 

 1 #include "stdio.h"
 2 #include "string.h"
 3 const int maxn = 100000;
 4 int main(int argc, char const *argv[])
 5 {
 6     char indata[maxn];
 7         memset(indata,0,sizeof(indata));
 8     while(scanf("%s",indata)!=EOF)
 9     {
10         int n = strlen(indata);
11         unsigned long long sum = 0;
12         for(int i=n-1;i>=0;i--)
13         {
14             unsigned long long k = indata[i]-'0';
15             sum += (k<<(n-i-1));
16         }
17         printf("%llu\n",sum );
18     }
19     return 0;
20 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved