21xrx.com
2025-04-02 10:01:33 Wednesday
文章检索 我的文章 写文章
C++进制转换例题练习
2023-07-01 00:34:33 深夜i     7     0
C++ 进制转换 例题 练习 程序设计

C++语言中,进制转换是一项非常基础的操作。为了更好地掌握C++的进制转换功能,下面给出一些例题供大家练习。

例题1:将十进制数转换为二进制数

输入一个十进制数,将其转换为二进制数输出。

样例输入:18

样例输出:10010

解题思路:将十进制数不断除以2,并将余数记录下来,直到商为0。余数即为转换后的二进制数,倒序输出即可。

代码实现:

#include <iostream>
using namespace std;
int main() {
  int n;
  cin >> n;
  int temp = n;
  int bin = 0;
  int index = 1;//表示该数的二进制位数
  while(temp != 0){//转换后二进制数位数等于商的整数部分向上取整的结果
    bin += (temp % 2) * index;//将余数记录下来
    index *= 10;
    temp /= 2;//不断除以2
  }
  cout << bin << endl;
  return 0;
}

例题2:将二进制数转换为十进制数

输入一个二进制数,将其转换为十进制数输出。

样例输入:10110

样例输出:22

解题思路:按照二进制数的权值相加的规则,依次计算每一位的权值,得到最终结果即可。

代码实现:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
  int n;
  cin >> n;
  int temp = n;
  int dec = 0;
  int index = 0;//表示该数的二进制位数
  while(temp != 0){
    int digit = temp % 10;//取数的个位
    dec += digit * pow(2, index);//计算每一位的十进制权值
    index++;
    temp /= 10;
  }
  cout << dec << endl;
  return 0;
}

例题3:将十进制数转换为十六进制数

输入一个十进制数,将其转换为十六进制数输出。

样例输入:234

样例输出:EA

解题思路:将十进制数不断除以16,并将余数记录下来,直到商为0。余数即为十六进制数字,转换后输出即可。

代码实现:

#include <iostream>
using namespace std;
int main() {
  int n;
  cin >> n;
  int temp = n;
  int hex[20];//保存十六进制数的每一位
  int index = 0;//表示该数的十六进制位数
  while(temp != 0){
    int digit = temp % 16;//将余数记录下来
    if(digit < 10){
      hex[index] = digit + '0';
    }else{
      hex[index] = digit - 10 + 'A';
    }
    index++;
    temp /= 16;//不断除以16
  }
  for(int i = index - 1; i >= 0; i--){
    cout << hex[i];
  }
  cout << endl;
  return 0;
}

通过以上例题练习可以加深对C++进制转换的理解和掌握,同时也为后续更高级的进制转换操作奠定了基础。

  
  

评论区

请求出错了