21xrx.com
2024-11-10 00:30:36 Sunday
登录
文章检索 我的文章 写文章
C++代码实现二进制转十进制
2023-07-12 10:30:39 深夜i     --     --
C++ 二进制 十进制 代码 实现

二进制和十进制是我们平时编程中经常涉及到的数制,二进制是一种使用 0 和 1 表示数值的系统,而十进制是我们日常生活中所使用的 0 到 9 的数值系统。在程序设计中,我们需要将二进制转换为十进制,下面介绍使用 C++ 代码实现二进制转十进制。

程序设计思路:

使用 C++ 代码实现二进制转十进制,思路主要有两个:

一、通过字符串转换

将二进制数作为字符串,从右往左遍历每一位数,计算每一位二进制数对应十进制的权重,最后将所有位数的权重累加。C++ 中可以使用 stoi 和 substr 函数将字符串进行分割和转换。

二、通过数学方法

二进制转换为十进制的数学方法是:将每一位二进制数乘以对应的 2 的次方,从右往左次方依次递增,最后将所有位数的结果相加即为十进制数。C++ 中可以使用位运算符实现二进制转十进制。

下面将分别介绍这两种方法的实现过程。

通过字符串转换实现二进制转十进制

下面是使用字符串转换方法实现二进制转十进制的 C++ 代码:


#include <iostream>

#include <string>

using namespace std;

int binaryToDecimal(string val) { 

  int result = 0; 

  for(int i=val.size()-1; i>=0; i--) { 

    //计算每一位的权重 

    int weight = 1 << (val.size()-1-i); 

    //将字符串转换为整数 

    int num = stoi(val.substr(i, 1));  //取当前位置的数字字符串并转换为整数 

    result += num * weight; 

  } 

  return result; 

int main() { 

  string val = "1101"; 

  int decimalVal = binaryToDecimal(val); 

  cout << "Binary value is " << val << " and Decimal value is " << decimalVal; 

  return 0; 

在这段代码中,首先定义了一个函数 binaryToDecimal,用于进行二进制到十进制的转换。该函数接收二进制数作为字符串,使用 for 循环从右往左遍历每一位数,计算每一位二进制数对应十进制的权重,然后将所有位数的权重累加,最终返回转换后的十进制数。

main 函数中使用字符串 "1101" 作为二进制源,调用 binaryToDecimal 函数将其转换为十进制数,并在控制台输出。

通过数学方法实现二进制转十进制

下面是使用数学方法实现二进制转十进制的 C++ 代码:


#include <iostream> 

using namespace std; 

int binaryToDecimal(int source) { 

  int result = 0, count = 0; 

  while(source != 0) { 

    //计算每一位的权重 

    int bit = source % 10; 

    result += bit << count++; 

    source /= 10; 

  } 

  return result; 

int main() { 

  int val = 1011; 

  int decimalVal = binaryToDecimal(val); 

  cout << "Binary value is " << val << " and Decimal value is " << decimalVal; 

  return 0; 

该代码采用了数学方法实现二进制转十进制。在这段代码中,定义了一个函数 binaryToDecimal,用于进行二进制到十进制的转换。该函数接收二进制数作为整数值,然后在 while 循环中计算每一位二进制数对应十进制的权重,直接将二进制数除以 10 即可得到其每一位数,最终返回转换后的十进制数。

main 函数中使用二进制整数值 1011 作为二进制源,调用 binaryToDecimal 函数将其转换为十进制数,并在控制台输出。

总结

上述就是使用 C++ 实现二进制转十进制的两种方法,可以根据实际情况进行选择。使用字符串转换的方式可读性更好,对于较大的二进制数也更加方便,而使用数学方法能够更快地将二进制数转换为十进制数。掌握了二进制转换方法,有助于我们更好地理解计算机中数值的存储和计算方式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复