如何將很大的10進位制整數轉換成16進位制求高手

2021-08-16 15:19:23 字數 5708 閱讀 7934

1樓:

等一下,給你完整程式。

以下程式經過除錯成功,你自己也試試。基本思想是:用字元陣列儲存10進位制數字,先將10進位制再轉換為2進位制,再通過2進位制轉換為16進位制。

這裡先轉換為2進位制的原因是進行除2運算要相對容易一些,且2進位制轉換為16進位制以及8進位制都是很方便的。當然你也可以直接對16進行整除求餘得到結果。

參考程式如下:

#include "stdio.h"

#include "string.h"

#define n 200

#define m 10000

void div(char s1,char s2)//s1整除2,商放入s2中

else

s16[j++]=s[t];

}for(i=len%4;i

s16[j]=0;

}void main()

while(num[0]!='0');

two[i]=0;

for(j=0,k=i-1;j

convert2to16(two,sixteen);//將二進位制轉換為16進位制

printf("對應的16進位制數為:\n");

puts(sixteen);}

2樓:匿名使用者

這麼大的數考慮用字串存放,輸出也用字串輸入字串為srcstr,長度為len,輸出字串為dststrchar srcstr[64],dststr[64];

int len,dstlen;

輸入略過...

dstlen = 0;

*dststr++ = '0'; *dststr++ = 'x';

dstlen += 2;

while (len--)

*dststr = null;

3樓:春雨_潤物

你是不是想把這個十六進位制數以字元陣列的形式儲存在陣列裡?

int a,d=0,b[1000];

char c[1000];

cin>>a;

for(int i=0;i

}for(int i=0;i<=d;i++)}這個我沒有寫好,主要是全寫出來太麻煩,其實a也應該是一個陣列的,改的時候只需將輸入的數化為字元陣列形式後再將for迴圈中的條件改一下就行了。

4樓:

c語言有自帶的轉換,看我:

int a;

scanf("%d",&a);

printf("%x",a);

printf("%o",a);

/*%o為八進位制輸出

%x為十六進位制輸出*/

5樓:匿名使用者

這種事情一般用一個陣列來做, 但是怎麼做方便還是要看具體需求, 要麼方便輸入,要麼方便輸出

如果你想方便輸出的話, 可以在陣列裡儲存16進位制形式。 3位10進位制數要用10位2進位制儲存,所以200位大約需要670位2進位制, 用unsigned int thenumber[21]差不多就夠了

然後輸入的時候從前到後每輸入一位要對整個陣列做乘10再加上末位的運算, 為了考慮進位,應該注意用64位整數做運算而不要在原地運算(原地運算的話溢位部分就找不回來了,當然你也可以每個int32少存幾位資料保證它不溢位,但是還是要調整進位)。 當然更有效率一點的做法是每次多讀幾位什麼的

這樣輸出就簡單了,挨個int按16位列印出來就好了

6樓:匿名使用者

首先你要知道如何表示這個大整數,因此需要定義這樣一個大整數,然後可以對它定義加減乘除等四則運算。當然,以幾進位制輸出是格式問題,很簡單。如果需要,我可以將大整數的標頭檔案發給你,如果你已經有了,可以按16進位制的格式輸出

7樓:匿名使用者

電腦自帶的計算器就可以轉換

開始-程式-附件-計算器 -檢視 科學性

8樓:

大學學過忘了,哎!大學就像浮雲一樣的好過!

如何把一個10進位制數轉換成16進位制數

9樓:隔壁的蟲子

一種是採用除16求餘法,還有就是先把十進位制轉二進位制再轉十六進位制。分別舉個例子:

1.除16求餘

115轉十六進位制 115/16 商是7 餘數是3.用7再除16,商是0,餘數是7

故結果是73

2.先轉二進位制再轉十六進位制

115的二進位制是1110011,整數部份從最低有效位開始,以4位為一組,最高有效位不足4位時以0補齊,每一組均可轉換成一個十六進位制的值,轉換完畢就是十六進位制的整數。

0111 0011

7 3

結果73

10樓:

最少2種方法,一種是端除,一種是用計算器..

端除就是以16為除數取餘數.....倒取於.

比如:25d(十進位制)---->

25/16 上的是1 是9 所以十六進位制是1916|25

16|1 .......9

16|0 .......1

自己看咯..還有一種是用計算器啊..裡面"檢視"選單下不是有個"科學型"選項麼? 裡面倒那個裡面敲看看.....要懂得資源利用,微軟給了 就不要浪費自己的腦細胞....

c語言將一個十進位制的整數轉換成十六進位制的字串

11樓:匿名使用者

要轉成字串來

其實不需自要自己寫多少程式bai 借用sprintf就可以du了char s[20];

int a;

scanf("%d",&a);

sprintf(s, "%x", a);

這樣 s中就是

zhia的16進位制字元dao串了。

12樓:聽不清啊

#include

#include

int main()

;scanf("%d",&n);

sprintf(s,"%x",n);

printf("%d=%sh\n",n,s);

return 0;}

13樓:匿名使用者

要轉成字串bai

其實不需du要自己寫zhi多少程式 借用sprintf就可以dao了

char s[20];

int a;

scanf("%d",&a);

sprintf(s, "%x", a);

這樣 s中就版是a的16進位制字串了。權

sql中如何將一個十進位制數轉換成16進位制數,然後只顯示16進位制數的整數部分

14樓:匿名使用者

select replace(ltrim(replace(replace((

master.dbo.fn_varbintohexstr(cast(

convert(bigint, col1) as binary ))collate latin1_general_ci_as_ks_ws ),0,' '),'x',' ')),' ','0')

from table

將一個十進位制整數轉換成2、8、16進位制字串的程式

15樓:

'轉換成二進位制字串

public function getbinary(byval dec as integer)

dim str_b as string

str_b = ""

do while dec > 0

str_b = trim(str(dec mod 2)) + str_b

dec = int(dec / 2)

loop

getbinary = str_b

end function

'轉換成八進位制字串

public function getoctal(byval dec as integer)

dim str_o as string

str_o = ""

do while dec > 0

str_o = trim(str(dec mod 8)) + str_o

dec = int(dec / 8)

loop

getoctal = str_o

end function

'轉換成十六進位制字串

public function gethex(byval dec as integer)

dim str_h as string

dim tmp as string

str_h = ""

do while dec > 0

ram = dec mod 16

select case ram

case 10

tmp = "a"

case 11

tmp = "b"

case 12

tmp = "c"

case 13

tmp = "d"

case 14

tmp = "e"

case 15

tmp = "f"

case else

tmp = trim(str(ram))

end select

str_h = tmp + str_h

dec = int(dec / 16)

loop

gethex = str_h

end function

16樓:覃松濤

#include

using namespace std;

int a[100];

void func2(int x)//x此處是10進位制數,轉化成二進位制

for(int k=i-1;k>=0;k--)

17樓:影孤清

如果你只是要將一個數轉換成2.8.16進位制的數就不需要用函式了.只要用輸出格式就行了.

例如:main()

這樣就能將16這個十進位制數轉換成八進位制的了.

十六進位制的為x.但對於二進位制的我也不知道,希望有高手能說一下,我也是c語言初學者.

大神幫忙解釋一下啊!輸入一個十進位制正整數,將其轉換成16進位制並輸出。

18樓:匿名使用者

int i,p,n;

int number[40];

scanf("%d",&n);  //原題bai這兒少了一個分號

dup=-1;

while(n!=0) //(27)選d  //採用的轉zhi換方法叫:除模取餘倒dao著讀,

內和短除法分解容質因數類似

for(i=p;i>=0;i--)

printf("\n");

return 0;

19樓:析閒平湛藍

原題這兒少了一個分號 p=-1; while(n!=0) //(27)選

d //採用的轉換方法叫:除模取餘倒著讀,

版和短除法分解權質因數類似 for(i=p;i>=0;i--) printf("\n"); return 0;

如何將2進位制10110010轉換成8進位制和16進位制的

化成8進位制 從右向左每抄三位為一組,最左邊bai不夠du三位在左側補0 最右 010 即0 2 zhi0 1 2 1 0 2 2 2中間 110 即0 2 0 1 2 1 1 2 2 6左邊dao 010 0 2 0 1 2 1 0 2 2 2則化成8進位制後的數為2 左 6 中 2 右 262化...

如何將PDF轉換成版本,如何將PDF轉換成WORD版本

我們來看一下具體操作方法 3.進入下一個介面之後,我們在上方各種功能選項內選擇 pdf轉word 的頁面,單擊新增檔案將自己需要轉換成word的pdf檔案選中,單擊開啟。或者選擇將需要轉換成word的pdf檔案選中後拖拽進軟體頁面中。4.在我們將pdf轉換成word進行轉換之前我們要先調整一下輸出目...

c中如何將整數轉換成十六進位制的字串

1 首先開啟vc6.0,新建一個專案。2 新增標頭檔案。3 新增main主函式。4 定義無符號char型別變數str,strh。5 定義int變數i,j。6 將str字元轉換為十六進位制並新增到strh中。7 使用printf列印即可。用字串流就可以。include include std stri...