最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++面試題之進(jìn)制轉(zhuǎn)換的實(shí)例

 更新時(shí)間:2017年10月16日 10:58:55   作者:Jhuster  
這篇文章主要介紹了C++面試題之進(jìn)制轉(zhuǎn)換的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這樣的知識(shí),需要的朋友可以參考下

C++進(jìn)制轉(zhuǎn)換的實(shí)例

 一個(gè)面試題,要求輸入十進(jìn)制數(shù),輸出十六進(jìn)制,可以使用printf打印%d,%c,%s來輸出,但不能使用 %x 打印。

    寫了兩種算法,還算比較簡潔,粘貼在此。        

// 第一種算法,從低位到高位掃描移位,需要一個(gè)數(shù)組輔助倒序,一次性輸出結(jié)果 
 
#include <stdio.h> 
 
#define MAX_HEX_NUM 16 
#define OUT_DATA_LEN sizeof(int)*2 // 2個(gè)16進(jìn)制數(shù)表示1個(gè)字節(jié)
 
static char Hex_Char_Table[MAX_HEX_NUM] = { 
  '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' 
}; 
 
int ten2hex( int data ) 
{ 
  char result[OUT_DATA_LEN+1]; 
  int i,index; 
 
  result[OUT_DATA_LEN] = '\0'; 
  for( i=OUT_DATA_LEN-1; i>=0; i-- ) 
  { 
    index = data & 0xf; 
    result[i] = Hex_Char_Table[index]; 
    data = data>>4; 
  } 
 
  printf("0x%s\n",result); 
 
  return 0; 
} 

    下面是第二種算法,從高位向低位掃描,得到結(jié)果直接打印。

#include <stdio.h> 
 
#define BITS_OF_INT  sizeof(int)*8 // int的位數(shù) 
#define OUT_DATA_LEN sizeof(int)*2 // 2個(gè)16進(jìn)制數(shù)表示1個(gè)字節(jié) 
 
int printHex( int num ) 
{ 
  int i; 
 
  printf("0x"); 
  for(i=0;i<OUT_DATA_LEN;i++) 
  { 
    unsigned int res = num & 0xf0000000; //注意,必須用 unsigned int來接收,否則當(dāng)輸入負(fù)數(shù)的時(shí)候會(huì)轉(zhuǎn)換錯(cuò)誤 
    res = res >> (BITS_OF_INT-4); 
    char c; 
    if( res <= 9 ) 
      c = res + '0'; 
    else 
      c = 'A' + res - 10; 
 
    printf("%c",c); 
 
    num = num << 4; 
  } 
 
  printf("\n"); 
} 

    兩種算法其實(shí)都是采用移位的方式來運(yùn)算,而不是采用除法,這樣會(huì)更加高效一些,我想這個(gè)題目的考點(diǎn)應(yīng)該也在這里吧。

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 學(xué)生信息管理系統(tǒng)C語言版

    學(xué)生信息管理系統(tǒng)C語言版

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++鍵盤記錄程序代碼

    C++鍵盤記錄程序代碼

    這篇文章主要介紹了C++鍵盤記錄程序代碼,是Windows應(yīng)用程序開發(fā)中非常實(shí)用的功能,該功能也常被一些遠(yuǎn)程操控程序所實(shí)用,需要的朋友可以參考下
    2014-10-10
  • 優(yōu)秀程序員必須知道的20個(gè)位運(yùn)算技巧

    優(yōu)秀程序員必須知道的20個(gè)位運(yùn)算技巧

    掌握簡單的位運(yùn)算技巧還是必要的,所以今天寫這篇文章把我積累的一些位運(yùn)算技巧分享給大家,這些技巧不會(huì)是如求“1的數(shù)目”的技巧,是最基本的一行位運(yùn)算技巧
    2013-09-09
  • C++面向?qū)ο髮?shí)現(xiàn)萬年歷的示例代碼

    C++面向?qū)ο髮?shí)現(xiàn)萬年歷的示例代碼

    本文將通過面向?qū)ο髮?shí)現(xiàn)一個(gè)簡單的日歷(萬年歷)效果,主要會(huì)有以下幾個(gè)模塊:模型、視圖、控制,感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-06-06
  • C++中簡單的文本文件輸入/輸出示例詳解

    C++中簡單的文本文件輸入/輸出示例詳解

    C++程序把輸入和輸出看作字節(jié)流,輸入時(shí)程序從輸入流中抽取字節(jié),輸出時(shí)程序?qū)⒆止?jié)插入到輸出流中,下面這篇文章主要給大家介紹了關(guān)于C++中簡單的文本文件輸入/輸出的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • c/c++中struct定義、聲明、對(duì)齊方式解析

    c/c++中struct定義、聲明、對(duì)齊方式解析

    這篇文章通過C/C++的兩種聲明方式開始,給大家詳細(xì)分析了/c+中struct定義、聲明、對(duì)齊方式,對(duì)此有興趣的朋友可以參考學(xué)習(xí)下。
    2018-03-03
  • C++雙線程調(diào)用網(wǎng)絡(luò)攝像頭與多線程調(diào)用多攝像頭同步執(zhí)行方法詳細(xì)講解

    C++雙線程調(diào)用網(wǎng)絡(luò)攝像頭與多線程調(diào)用多攝像頭同步執(zhí)行方法詳細(xì)講解

    這篇文章主要介紹了C++雙線程調(diào)用網(wǎng)絡(luò)攝像頭與多線程調(diào)用多攝像頭同步執(zhí)行方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • C語言數(shù)組和指針,內(nèi)存之間的關(guān)系

    C語言數(shù)組和指針,內(nèi)存之間的關(guān)系

    這篇文章主要介紹了C語言數(shù)組和指針,內(nèi)存之間的關(guān)系,首先論證一維數(shù)組和一級(jí)指針之前的關(guān)系,我們常常使用一級(jí)指針指針的方式訪問一維數(shù)組,只有對(duì)內(nèi)存的理解到位才能理解它們直接的關(guān)系。需要的小伙伴可以參考一下
    2022-02-02
  • C語言利用面試真題理解指針的使用

    C語言利用面試真題理解指針的使用

    C語言這門課程在計(jì)算機(jī)的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語言的學(xué)習(xí),對(duì)指針的掌握是非常重要的,本文將具體針對(duì)指針的基礎(chǔ)做詳盡的介紹
    2022-08-08
  • Qt調(diào)用MATLAB引擎混合編程的過程詳解

    Qt調(diào)用MATLAB引擎混合編程的過程詳解

    這篇文章給大家介紹了Qt調(diào)用MATLAB引擎混合編程的全過程,文中通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

伊吾县| 集安市| 隆尧县| 和硕县| 武汉市| 东海县| 云和县| 泰和县| 郓城县| 旺苍县| 礼泉县| 万源市| 咸丰县| 华宁县| 沐川县| 广州市| 榆中县| 上虞市| 平邑县| 永川市| 阜康市| 桂东县| 包头市| 秦安县| 贵德县| 陆河县| 庆云县| 垣曲县| 增城市| 五寨县| 祁东县| 枣强县| 隆昌县| 方山县| 卫辉市| 青岛市| 民勤县| 睢宁县| 龙川县| 玉屏| 万安县|