C++ 二进制转十进制
生活随笔
收集整理的這篇文章主要介紹了
C++ 二进制转十进制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
有好幾萬個二進制數(shù),最長不超過64位,請將其都轉(zhuǎn)換成十進制數(shù)
輸入描述
輸入有多行!!每行包含一個長度不超過64位二進制數(shù),最后一行輸入-1表示輸入結(jié)束
輸出描述
對于每行二進制數(shù),輸出轉(zhuǎn)換后的十進制數(shù),每個數(shù)占一行
輸入樣例
100101101010100 101010000100101111 -1輸出樣例
19284 172335 #include <iostream> #include <cstring> #include <cmath>using namespace std;double power(double x, int n); // 原函數(shù)聲明int main () {__int64 value;char c[64];while (cin >> c){if(c[0] == '-'){break;}int len = strlen(c); // 獲取輸入的二進制的長度value = 0;for (int i = len - 1; i >= 0; i--){if (c[i] == '1'){value += static_cast<__int64>(power(2, len - i - 1)); // static_cast<__int64>(參數(shù))將double型數(shù)據(jù)轉(zhuǎn)換成__int64型數(shù)據(jù)}}cout << value << endl;} }double power (double x, int n){ // 返回給定數(shù)字的乘冪,返回類型為double型double val = 1.0;while (n--){val *= x; } return val; }strlen函數(shù)的實現(xiàn)
#include <iostream>using namespace std;size_t strlen(const char *s){size_t len = 0;while(*s++){len++;}return len; } int main(void){char *p = "vvcat";cout << "字符串的長度為:" << strlen(p) << endl; }總結(jié)
以上是生活随笔為你收集整理的C++ 二进制转十进制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 最大公约数排序
- 下一篇: C++ 求组合值