在c語言中用最簡單的方法把十進位制轉化為十六進製制

時間 2022-04-15 09:23:46

1樓:多xdl點事

**如下:

#include "stdio.h"

int main()

;printf("請輸入乙個十進位制整數:");

scanf("%d",&num);

while(num>0)

printf("轉化為十六進製制的數為:0x");

for(i=i-1;i>=0;i--)//倒序輸出printf("\n");

}程式執行結果:

擴充套件資料c語言中,十進位制轉換十六進製制,可以先輸入十進位制整數,然後去拼十六進製制,十六進製制由數字 0~9、字母 a~f 或 a~f(不區分大小寫)組成,使用時必須以0x或0x(不區分大小寫)開頭,只需把二進位制除以16得到餘數去上面定義的hex[16]陣列進行取值接可以得到轉換的數字。

2樓:

#include

int main()

%x %x就是以十六進製制的形式輸出乙個整數,字母的大小寫形式與x相同

3樓:聽不清啊

#include

void dec2hex(int n)

{if(n>15)dec2hex(n/16);

printf("%c",n%16<10?n%16+'0':n%16+55);

int main()

{int n;

scanf("%d",&n);

dec2hex(n);

return 0;

4樓:匿名使用者

#include

int main()

5樓:我的

在printf函式中,你可以用%x格式來輸出16進製制

如:int a = 10;

printf("%x", a);

6樓:

#include

int main(void)

else s[i] = (char)(yushu + 48);

i++;

} s[i] = '\0';

for(i = i - 1 ; i >= 0; i--)printf("%c",s[i]);

}return 0;}

7樓:

#include

int main()

8樓:哼_給你一腳

int var;

scanf("%d",&var);

printf("%x", var);

c語言程式設計 把十進位制轉換為十六進製制

9樓:黑白say晚安

方法一:

#include

#include

using namespace std;

string decinttohexstr(long long num)

string decstrtohexstr(string str)int main()

return 0;}

方法二:

#include

#include

#include

#include

#include

using namespace std;int main()

reverse(v.begin(), v.end()); string hexstr; if (v.

size() % 4 == 0)    if (temp <= 9) hexstr += temp; else hexstr += ('a' + temp - 10); } }

else

if (temp <= 9) else hexstr += ('a' + temp - 10); } } cout << hexstr << endl; return 0;}

擴充套件資料:

還有3種方式可以實現,其中兩種是使用系統函式,另一種是直接自己編寫。

下面的**就是3種方式的實現,包括2位的整數和任意整數(2的31次方以內)都可以。可自己選擇需要的實現方式。

利用系統函式有

1. char *  itoa ( int value, char * str, int base );value是要轉化的數字,str是轉化後的字串儲存的位置,base是進製數(但是這個函式不是標準c函式,有些編譯器是不支援的!)。

所以**可以為:

char buffer [33]; //用於存放轉換好的十六進製制字串,可根據需要定義長度 char * inttohex(int aa)

2. sprintf(str,"%x",value);str是轉化儲存的位置,%x表示十六進製制格式,value是要轉化的數字。所以**可以為:

char buffer [33]; //用於存放轉換好的十六進製制字串,可根據需要定義長度 char * inttohex(int aa)

3. 自己編寫

如果引數只要兩位數的整數,那麼很簡單。

**如下:

#include #include char buffer [33]; //用於存放轉換好的十六進製制字串,可根據需要定義長度 char * inttohex(int aa)

int main ()

10樓:匿名使用者

#include #include char buffer [33]; //用於存放轉換好的十六進製制字串,可根據需要定義長度 char * inttohex(int aa) int main ()

擴充套件資料:

16進製制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……

所以,在第n(n從0開始)位上,如果是是數 x (x 大於等於0,並且x小於等於 15,即:f)表示的大小為 x * 16的n次方。

例:2af5換算成10進製:

用豎式計算:

第0位: 5 * 16^0 = 5

第1位: f * 16^1 = 240

第2位: a * 16^2= 2560

第3位: 2 * 16^3 = 8192

-------------------------------------

10997

直接計算就是:

5 * 16^0 + f * 16^1 + a * 16^2 + 2 * 16^3 = 10997

16進製製到二進位制

由於在二進位制的表示方法中,每四位所表示的數的最大值對應16進製制的15,即16進製制每一位上最大值,所以,我們可以得出簡便的轉換方法,將16進製製上每一位分別對應二進位製上四位進行轉換,即得所求

11樓:我是乙個麻瓜啊

程式設計程式如下:

擴充套件資料

十六進製制轉換十進位制

16進製制就是逢16進1,但我們只有0~9這十個數字,所以我們用a,b,c,d,e,f這六個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。

十六進製制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方,以此類推。在第n(n從0開始)位上,如果是數β (β大於等於0,並且β小於等於 15,即:f)表示的大小為 β×16的n次方。

假設有乙個十六進數 2af5直接計算就是:5×160+f×161+a×162+2×163=10997

12樓:澀錦無弦

1、方法一:使用進製轉換。

#include

#include

/* 十六進製制數轉換為十進位制數 */

long hextodec(char *source);

/* 返回ch字元在sign陣列中的序號 */

int getindexofsigns(char ch);

int main()

/* 十六進製制數轉換為十進位制數 */

long hextodec(char *source)

return sum;

}/* 返回ch字元在sign陣列中的序號 */

int getindexofsigns(char ch)

if(ch >= 'a' && ch <='f')

if(ch >= 'a' && ch <= 'f')

return -1;

}2、方法二:可以使用sscanf函式將以字串形式的十六進製制數轉換為整型的十六進製制。

sscanf函式的用法與printf函式很像,都是以格式化的形式進行操作。例如如下的例子中是將字串a23cd以十六進製制形式輸入a中,如果將"%x"換成為"%d"的話,就是將字串a23cd以十進位制形式輸入a中,這顯然是錯誤的,因為將a23cd轉換為十進位制的時候,無法解析a,cd等字元,所以得出的結果就是錯誤的。

int a;

sscanf("a23cd", "%x", &a);

printf("%x\n",a);

printf("%d\n",a);

linux@ubuntu:~/test$ ./a.out

a23cd

664525

擴充套件資料

c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。

參考資料

13樓:岔路程式緣

稍等一會兒好嗎~~

#include

main()

else

else

a=a/16;

w++;}}

printf("\n");

printf("%d(10)轉換為16進製制數字為:",u10);

for(i=w-1;i>=0;i--)

printf("\n");}

14樓:匿名使用者

通過鍵盤輸入乙個十進位制數,然後將其

15樓:匿名使用者

#include

int main(void)

i=0;

while(x)

for(j=i-1;j>=0;j--)

if(a[j]<=9)

printf("%d",a[j]);

else if(a[j]<=15)

printf("%c",a[j]+'a'-10);

printf("\n");

return 0;}

16樓:匿名使用者

#include

int main()

i = 0;

while(a > 0)

for(i--; i >= 0; i--)printf("%c", s[i]);

return 0;}

c語言中,怎麼將十進位制的整數轉換成十六進製制的數,不是簡單的用%d和%x....

17樓:別跟我講冷笑話

#include

void main()

while ( n/=16 );

sn[i] = '\0';

for( j=0, i--; j

18樓:殘濤驚夢

將十進位制整數轉換成十六進製制需要計算。

將整型轉換為字元型,需要改變ascll碼,可以參考數字和字元對應的ascll碼。

怎樣在c語言中用運算邏輯表示式表達

首先判斷某一年為閏年的條件是 能被4整除,同時又能被100整除,或者是能被400整除。假設某一年為x,那麼這個表示式就可以寫為 這樣只要滿足if裡面的條件就可以判斷該年是閏年了。還有一點提醒一下吧,像這樣的數學表示式 0 0 x 0其它的表示式就都可以這樣類推了 下面提供乙個判斷某一年是否為閏年的 ...

C語言中的sturct用途, 在c語言中的意思

結構體。c為了更好的處理資料問題,引入了結構體的概念。具體用法你可以到網上搜下。我不廢話了。這是用來定義結構的函式 例如 struct student 在c語言中的意思 階乘指從1乘以2乘以3乘以4一直乘到所要求的數。例如所要求的數是4,則階乘式是1 2 3 4,得到的積是24,24就是4的階乘。例...

在C語言中fseek 的功能,在C語言中fseek 的功能

fseek 是重定位流 資料流 檔案 上的檔案內部位置指標。注意 檔案指標指向檔案 流。位置指標指向檔案內部的位元組位置,隨著檔案的讀取會移動,檔案指標如果不重新賦值將不會改變或指向別的檔案。如果執行成功,stream將指向以fromwhere為基準,偏移offset 指標偏移量 個位元組的位置,函...

C語言中strcpy的用法!要舉例哦!簡單的哦

下面是 strcpy 函式的宣告 char strcpy char dest,const char src 引數 1.dest 指向用於儲存複製內容的目標陣列。2.src 要複製的字串。例項 include include int main 1 strcpy的作用是把從src位址開始且含有 0 結束...

c語言中最簡單的資料型別包括什麼

1 整 數 型 長 短 2 實 數 型 長 短 3 字元型 這三種應該是最常用的並且應該是最簡單的了 一位網際網路從業者 就是基本資料型別唄 整型,字元型,浮點型 1整型又包括,一般整型int,短整型short,長整型long,無符號整型unsigned 細分為,無符號整型,無符號短整型,2無符號長...