21xrx.com
2024-12-22 21:52:38 Sunday
登录
文章检索 我的文章 写文章
C++进制转换例题练习
2023-07-01 00:34:33 深夜i     --     --
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++进制转换的理解和掌握,同时也为后续更高级的进制转换操作奠定了基础。

  
  

评论区

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