c++二进制转十进制
?代碼
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
double power(double x, int n); // 原函數聲明
int main () ?{
?? ?__int64 value;//二進制64位?
?? ?char c[64];
?? ?
?? ?while (cin >> c){
?? ??? ?if(c[0] == '-'){
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?int len = strlen(c); ?// 獲取輸入的二進制的長度strlen() 函數從字符串的開頭位置依次向后計數,直到遇見\0,然后返回計時器的值。最終統計的字符串長度不包括\0
?? ??? ?value = 0;
?? ??? ?for (int i = len - 1; i >= 0; i--){
?? ??? ??? ?if (c[i] == '1'){
//?? ??? ??? ??? ?2的i次方結果為double類型,轉換為int類型,然后累加到value上。
?? ??? ??? ??? ?value += static_cast<__int64>(power(2, len - i - 1)); // static_cast<__int64>(參數)將double型數據轉換成__int64型數據
?? ??? ??? ?}
?? ??? ?}
?? ??? ?cout ?<< value << endl;
?? ?}?
}
double power (double x, int n){ ?// 返回給定數字的乘冪,返回類型為double型
?? ?double val = 1.0;
?? ?
?? ?while (n--){
?? ??? ?val *= x;?? ?
?? ?}?
?? ?return val;
}
?
總結
以上是生活随笔為你收集整理的c++二进制转十进制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 波士顿房价预测模型源代码
- 下一篇: linux mediainfo java