21xrx.com
2024-11-22 09:53:35 Friday
登录
文章检索 我的文章 写文章
C++实现十进制转十六进制数组
2023-07-06 12:58:00 深夜i     --     --
C++ 十进制 十六进制 数组 实现

在计算机科学中,我们常使用多种进制来表示数字,其中最常用的进制是十进制和二进制。然而,在某些情况下,我们需要将数字转换为其他进制,比如十六进制。在C++中,实现十进制转十六进制非常简单,我们只需要使用一个数组来存储转换后的结果即可。

下面是一个简单的C++程序,用于将十进制数转换为十六进制数组:


#include<iostream>

using namespace std;

int main(){

  int num; //定义一个整数来存储需要转换的十进制数

  int hex[100]; //定义一个数组来存储转换后的十六进制数

  int i=0; //定义一个变量来记录数组的下标

  cout<<"请输入一个十进制整数:";

  cin>>num;

  while(num>0){

    int remainder=num%16; //取余,得到当前位置的十六进制数

    if(remainder<10){

      hex[i]=remainder+48; //将0~9对应的ASCII值存入数组

    }

    else{

      hex[i]=remainder+55; //将A~F对应的ASCII值存入数组

    }

    num=num/16; //将num除以16,继续运算

    i++; //下标加1

  }

  cout<<"十六进制数为:";

  for(int j=i-1;j>=0;j--){ //倒序输出数组的值

    cout<<char(hex[j]);

  }

  cout<<endl;

  return 0;

}

在上面的代码中,我们首先定义了一个整数变量`num`来存储需要转换的十进制数,声明一个数组`hex`来存储转换后的十六进制数。然后,我们使用一个循环,对`num`进行除16取余的运算,得到每一位的十六进制数,并将其存储到数组中。最后,我们倒序输出数组的值,就得到了转换后的十六进制数。

需要注意的是,由于十六进制数的范围是0~15,而ASCII码表中数字0~9对应的值为48~57,字母A~F对应的值为65~70,因此我们需要使用一个判断语句来判断当前位置的十六进制数是数字还是字母,并将其对应的ASCII值存入数组中。

总之,使用C++实现十进制转十六进制数组是一件非常简单的事情。通过使用一个数组来存储转换后的结果,我们可以方便地进行十进制和其他进制的转换。

  
  

评论区

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