21xrx.com
2024-06-03 06:10:58 Monday
登录
文章检索 我的文章 写文章
C++进制转换练习题
2023-07-09 00:44:51 深夜i     --     --
C++ 进制转换 练习题

C++是一种非常强大的编程语言,非常适合进行一些进制转换的操作。在学习C++的过程中,我们经常会碰到一些关于进制转换的练习题,这些练习题可以帮助我们更好地熟悉C++的基础知识,特别是二进制和十六进制的数据类型。

下面,我们就来看几个关于进制转换的练习题,以帮助大家更好地掌握C++的进制转换技巧。

1.二进制转十进制

首先我们来看一个比较简单的练习题,将一个二进制数转换为十进制数。我们可以通过以下代码来实现:

#include

#include

using namespace std;

int main()

{

  int binary = 1011;

  int decimal = 0;

  int power = 0;

  while (binary > 0) {

    int digit = binary % 10;

    decimal += digit * pow(2, power);

    power++;

    binary /= 10;

  }

  cout << "The decimal value is: " << decimal << endl;

  return 0;

}

上面的代码中,我们定义了一个二进制数binary,定义了一个十进制数decimal,并且用power来表示二进制数中每一位上的权值。在while循环中,我们将二进制数逐位分离,再使用pow函数进行权值的计算,并将结果累加到十进制数中。最后输出十进制数即可。

2.十六进制转十进制

接下来我们来看一个稍微复杂一点的练习题,将一个十六进制数转换为十进制数。我们可以通过以下代码来实现:

#include

#include

using namespace std;

int main()

{

  string hex = "A5B";

  int decimal = 0;

  int power = 0;

  for (int i = hex.length() - 1; i >= 0; i--) {

    char digit = hex[i];

    int value;

    if (digit >= '0' && digit <= '9')

      value = digit - '0';

     else {

      value = digit - 'A' + 10;

    }

    decimal += value * pow(16, power);

    power++;

  }

  cout << "The decimal value is: " << decimal << endl;

  return 0;

}

上面的代码中,我们定义了一个十六进制数hex,定义了一个十进制数decimal,并且用power来表示十六进制数中每一位上的权值。在for循环中,我们按照十六进制数的每一位进行处理,并根据其除数(数字或字母表达式)进行权值的计算,并将结果累加到十进制数中。最后输出十进制数即可。

3.十进制转二进制

最后我们来看一个将十进制数转换为二进制数的练习题。我们可以通过以下代码来实现:

#include

using namespace std;

int main()

{

  int decimal = 95;

  int binary[32];

  int index = 0;

  while (decimal > 0) {

    binary[index] = decimal % 2;

    index++;

    decimal /= 2;

  }

  cout << "The binary value is: ";

  for (int i = index - 1; i >= 0; i--) {

    cout << binary[i];

  }

  cout << endl;

  return 0;

}

上面的代码中,我们定义了一个十进制数decimal,并且使用数组来存储其对应的二进制数(最多32位)。在while循环中,我们将十进制数逐位除以2,并将余数存储到数组中。最后在for循环中,我们将数组中的值逆序输出,即为对应的二进制数。

总结

通过以上的练习题,我们可以更好地掌握C++中的进制转换技巧。无论是二进制、十进制还是十六进制,我们都可以通过相应的算法和库函数来处理它们,并将它们转换为我们需要使用的数据类型。尝试完成一些练习题,让自己更加熟练掌握C++的进制转换技巧。

  
  

评论区

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