1. 程式人生 > >ASCII碼值轉化十六進位制,十進位制數;十六進位制字元值轉十進位制,ASCII碼值

ASCII碼值轉化十六進位制,十進位制數;十六進位制字元值轉十進位制,ASCII碼值

用字元表示的十六進位制值轉化為十進位制,ASCII碼:

bool ok;
QStringList list;

//初始化list的內容為:list = ("30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "43", "44", "4D", "4E")
//初始化list
for(int i =0 ;i<10;i++)
{
   QString temp = QString::number(30+i,10);
   list<<temp;
}
   list<<"43"<<"44"<<"4D"<<"4E";

   qDebug()<<"list ="<<list;             //list的十六進位制數初始值
   for(int i = 0 ;i<list.size() ;i++)
   {
      QString str_hex = list.at(i);      //獲取十六進位制數
      int dec = str_hex.toInt(&ok,16);   //十六進位制轉十進位制
      char st = dec;                     //十進位制數用char型別表示--->必須有此步直接轉化不可行
      QString str_ascii = QString(st);        //轉化為ASCII值
      qDebug()<<"  str_hex ="<<str_hex
              <<"  dec ="<<dec
              <<"  st ="<<st
              <<"  ascii ="<<str_ascii;
    }

//清空以便於之後的重新賦值
list.clear();

ASCII碼值轉十六進位制,十進位制數:

//初始化list
for(int i =0 ;i<10;i++)
{
   QString temp = QString::number(i,10);
   list<<temp;
}
   list<<"C"<<"D"<<"M"<<"N";
   qDebug()<<"list ="<<list;                   //list的ASCII碼初始值
   for(int i = 0 ;i<list.size() ;i++)
   {
      QString str_ascii = list.at(i);              //獲取ASCII值
      QByteArray ascii = str_ascii.toLatin1();     //轉化為QByteArray型別便於轉化為十六進位制
      QByteArray ascii_H = ascii.toHex();          //將ASCII值轉化為十六進位制數值
      QString str_hex = QString(ascii_H).toUpper();//十六進位制數的大寫表示
      int dec  = str_hex.toInt(&ok,16);            //十六進位制數轉化為十進位制數
      qDebug()<<"  str_ascii ="<<str_ascii
              <<"  ascii ="<<ascii
              <<"  ascii_H ="<<ascii_H
              <<"  str_hex ="<<str_hex
              <<"  dec ="<<dec;

   }

ASCII控制字元 :

ASCII可顯示字元: