c語言10位轉16位,16轉10進位c語言

本文目錄一覽:

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

代碼如下:

#include “stdio.h” 

int main() 

int num=0;

int a[100]; 

int i=0; 

int m=0;

int yushu; 

char hex[16]={‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’A’,’B’,’C’,’D’,’E’,’F’};

printf(“請輸入一個十進位整數:”); 

scanf(“%d”,num); 

while(num0) 

yushu=num%16; 

a[i++]=yushu; 

num=num/16; 

printf(“轉化為十六進位的數為:0x”); 

for(i=i-1;i=0;i–)//倒序輸出 {

m=a[i];

printf(“%c”,hex[m]); 

printf(“\n”); 

}

程序運行結果:

擴展資料

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

參考資料:百度百科-十六進位

在C語言中如何將10進位轉換成16進位?

根據10進位轉換為16進位的規則,編寫C語言程序將10進位數轉換為16進位數。

具體實現方法可參考如下程序:

#includestdio.h

void main()

{

    int i, x; // x表示欲轉換的10進位數

    int data[10], index=0;  // data數組存放轉換後的16進位數,index表示下標

    scanf(“%d”, x);  // 接受欲轉換的10進位數

    for(i=0; i10; i++)  // 對數組data進行初始賦值操作

        data[i] = 0;

    printf(“%d對應的16進位為:”, x);

    // 反覆相除取余,並將餘數存放在data數組中

    while(x0)

    {

     data[index] = x%16;

     x = x/16;

     index++;

    }

    // 逆序輸出data數組中的元素,即為10進位數對應的16進位數

    for(i=index-1; i=0; i–)

     printf(“%d”, data[i]);

    printf(“\n”);

}

C語言十進位轉十六進位數

C語言十進位轉十六進位數的源代碼如下:

#includebits/stdc++.h

using namespace std;

void IntZh0x(int n)

{int s=n%16;

if(n/16!=0) IntZh0x(n/16);

if(s9)

{

if(s==15) cout”F”;

else if(s==14) cout”E”;

else if(s==13) cout”D”;

else if(s==12) cout”C”;

else if(s==11) cout”B”;

else if(s==10) cout”A”;

}

else couts;

}

int main(){

int n;

cinn;

IntZh0x(n);

return 0;

}

擴展資料

1、十六進位數轉換成十進位數解,其值為各個位碼乘以位權然後完全相加。

2、十六進位就是把 4 個二進位位組合為一位來表示,每一位有0b0000 ~ 0b1111 共 16 個值,用 0 ~ 9 再加上 A ~ F(或 a ~ f)表示,那麼它自然就是逢十六進位,它本質上同二進位是一樣的,是二進位的一種縮寫形式。

c語言編程 把十進位轉換為十六進位

方法一:

#includeiostream

#include string

using namespace std;

string DecIntToHexStr(long long num)

{ string str; long long Temp = num / 16; int left = num % 16; if (Temp 0) str +=

DecIntToHexStr(Temp); if (left 10) str += (left + ‘0’); else str += (‘A’ + left – 10); return str;}

string DecStrToHexStr(string str){ long long Dec = 0; for (int i = 0; i str.size(); ++i) Dec =

Dec * 10 + str[i] – ‘0’; return DecIntToHexStr(Dec);}int main()

{ string DecStr; while (cin DecStr) { cout “0x” + DecStrToHexStr(DecStr); } return 0;}

方法二:

#includeiostream

#include string

#includevector

#include sstream

#include math.h

using namespace std;int main()

{ string decStr; cin decStr; int num = stoi(decStr); vectorintv; while (num) { int bit = num % 2; v.push_back(bit); num = num / 2; }

reverse(v.begin(), v.end()); string hexStr; if (v.size() % 4 == 0) { for (int i = 0; i v.size() / 4; ++i) { int temp = 0, k = 3; for (int j = i * 4; j (i +

1) * 4; ++j) { if (v[j] == 1) temp += pow(2, k); –k; }   if (temp = 9) hexStr += temp; else hexStr += (‘A’ + temp – 10); } }

else { int zeroNum = 4 – v.size() % 4; for (int i = 0; i zeroNum; ++i) v.insert(v.begin(), 0); for (int i = 0; i v.size() / 4; ++i) { int temp = 0, k = 3; for

(int j = i * 4; j (i + 1) * 4; ++j) { if (v[j] == 1) temp += pow(2, k); –k; }

if (temp = 9) { stringstream ss; string strTemp;

ss temp; ss strTemp; hexStr += strTemp; } 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){    itoa (aa, buffer, 16);    return (buffer);}

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

char buffer [33]; //用於存放轉換好的十六進位字元串,可根據需要定義長度 char * inttohex(int aa){    sprintf(buffer, “%x”, aa);    return (buffer);}

3. 自己編寫

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

代碼如下:

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

{    sprintf(buffer, “%x”, aa);    return (buffer);} int main ()             

{  int num;  char * hex_str;  printf (“Enter a number: “);  scanf (“%d”,num);  hex_str = inttohex (num);  printf (“Hexadecimal number: %sH\n”, hex_str);  return 0;}

求c語言將十進位數轉換為16進位的函數

c語言將十進位數轉換為16進位的函數:

#includestdio.h

main()

{

int u10;

char u16[10];

int w=0,a,b,i;

printf(“請輸入一個數字–“);

scanf(“%d”,u10);

if(u10==0)

{

u16[0]=’0′;

w++;

}

else

{

a=u10;

while(a)

{

b=a%16;

if(b10)

{

u16[w]=’0’+b;

}

else

{

u16[w]=’A’+b-10;

}

a=a/16;

w++;

}

}

printf(“\n”);

printf(“%d(10)轉換為16進位數字為:”,u10);

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

{

printf(“%c”,u16[i]);

}

printf(“\n”);

}

擴展資料:

十進位數轉換為二進位數方法

十進位數轉換為二進位數時,由於整數和小數的轉換方法不同,所以先將十進位數的整數部分和小數部分分別轉換後,再加以合併。

1. 十進位整數轉換為二進位整數 十進位整數轉換為二進位整數採用”除2取余,逆序排列”法。具體做法是:用2去除十進位整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為零時為止,然後把先得到的餘數作為二進位數的低位有效位,後得到的餘數作為二進位數的高位有效位,依次排列起來。

2.十進位小數轉換為二進位小數

十進位小數轉換成二進位小數採用”乘2取整,順序排列”法。具體做法是:用2乘十進位小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。

然後把取出的整數部分按順序排列起來,先取的整數作為二進位小數的高位有效位,後取的整數作為低位有效位。

參考資料:

百度百科-十進位

原創文章,作者:AKLW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146628.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AKLW的頭像AKLW
上一篇 2024-10-31 15:31
下一篇 2024-10-31 15:31

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論