當前位置:首頁 » 網頁前端 » 腳本如何實現10進制轉16進制
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

腳本如何實現10進制轉16進制

發布時間: 2022-05-18 08:29:38

⑴ 用函數實現10進制轉化16進制

用函數實現10進制轉化16進制,這里沒有說明清楚數據的類型和函數的類型,下面假定是把一個int 類型的10進制轉化為16進制的字元串。
char* dec2hex(int x,char h[])
{int i=0,t;
do{
t=x%16;
h[i++]=t<10?t+'0':t+'A'-10;
x/=16;
}while(x);
h[i]='\0';
return h;
}
調用語句:
dec2hex(x,h);
puts(h);
或者:
printf("%s\n",dec2hex(x,h));

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

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

#include<stdio.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(b<10)
{
u16[w]='0'+b;
}
else
{
u16[w]='A'+b-10;
}
a=a/16;
w++;
}
}
printf(" ");
printf("%d(10)轉換為16進制數字為:",u10);
for(i=w-1;i>=0;i--)
{
printf("%c",u16[i]);
}
printf(" ");
}

(2)腳本如何實現10進制轉16進制擴展閱讀:

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

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

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

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

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

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

⑶ 在C語言中如何將10進制轉換成16進制

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


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

#include<stdio.h>
voidmain()
{
inti,x;//x表示欲轉換的10進制數
intdata[10],index=0;//data數組存放轉換後的16進制數,index表示下標
scanf("%d",&x);//接受欲轉換的10進制數
for(i=0;i<10;i++)//對數組data進行初始賦值操作
data[i]=0;
printf("%d對應的16進制為:",x);
//反復相除取余,並將余數存放在data數組中
while(x>0)
{
data[index]=x%16;
x=x/16;
index++;
}
//逆序輸出data數組中的元素,即為10進制數對應的16進制數
for(i=index-1;i>=0;i--)
printf("%d",data[i]);
printf(" ");
}

⑷ 怎樣將10進制轉換成16進制

手寫轉換
1
把十進制數除以16,保留余數部分。得到余數以後就不要再往下除得小數了。
2
寫下余數部分,在右下角標上16。比如剩下的是11,寫成b,右下方寫16。查查如何理解十六進制數來了解一下十六進制所用的符號。
3
把之前的整數商再除以16,得到余數部分,然後再在這個余數右下角標上16
4
重復以上步驟,直到得到一個小於16的商。每一次都把余數右下方標上16,注意我們也需要寫下最後得到的商(即小於16的商)
,並轉為十六進制。
5
把余數和最後的商從左到右按順序寫下,最右是商。得到的十六進制就是這個數,從右往左讀。比如讀作2f34,實際上的值是43f2。

⑸ 如何用c語言實現10進制轉換成16進制

#include<stdio.h>

#defineLEN100

char*decimal2Others(intvalue,char*string,intradix){/*十進制數轉任意進制*/
/*除基數取余法:十進制數不斷除以進制基數直至為零,每次相除取得余數之逆序即為轉換結果*/
intremain,i=1,j=0;
inttemp[LEN];

while(value){/*除基數取余*/
remain=value%radix;
value=value/radix;
temp[i++]=remain;
}

while(--i){/*逆序存儲*/
if(temp[i]>9)
string[j++]=temp[i]-10+'a';/*十以上進制處理*/
else
string[j++]=temp[i]+'0';
}
string[j]='';
returnstring;
}

intmain(void){
intn;
charstring[LEN];

printf("請輸入十進制數:");
scanf("%d",&n);
putchar(' ');
puts("================================================================================ ");

printf("十六進制轉換結果:");
decimal2Others(n,string,16);
puts(string);
putchar(' ');

getch();/*屏幕暫留*/
return0;
}

運行結果

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

方法一:

#include<iostream>
#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;}

方法二:


#include<iostream>
#include <string>
#include<vector>


#include <sstream>
#include <math.h>
using namespace std;int main()


{ string decStr; cin >> decStr; int num = stoi(decStr); vector<int>v; 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;}

(6)腳本如何實現10進制轉16進制擴展閱讀:


還有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 ", hex_str); return 0;}

⑺ 用C語言編程實現10進制數值轉16進制字元串

根據10
進制
轉換為16進制的
規則
,編寫
C語言程序
將10進制數轉換為16進制數。
具體實現方法可參考如下程序:
#include<stdio.h>void
main(){
int
i,
x;
//
x表示欲轉換的10進制數
int
data[10],
index=0;
//
data數組存放轉換後的16進制數,index表示
下標
scanf("%d",
&x);
//
接受欲轉換的10進制數
for(i=0;
i<10;
i++)
//
對數組data進行初始賦值操作
data[i]
=
0;
printf("%d對應的16進制為:",
x);
//
反復相除取余,並將
余數
存放在data數組中
while(x>0)
{
data[index]
=
x%16;
x
=
x/16;
index++;
}
//
逆序輸出data數組中的元素,即為10進制數對應的16進制數
for(i=index-1;
i>=0;
i--)
printf("%d",
data[i]);
printf("\n");
}

⑻ python中如何將十進制轉化為十六進制的代碼

可以用format可以將十進制數轉化為16進制數。

⑼ 10進制轉化為16進制的演算法

方法 1 的 2:
手寫轉換

1
把十進制數除以16,保留余數部分。得到余數以後就不要再往下除得小數了。
2
寫下余數部分,在右下角標上16。比如剩下的是11,寫成B,右下方寫16。查查如何理解十六進制數來了解一下十六進制所用的符號。

3
把之前的整數商再除以16,得到余數部分,然後再在這個余數右下角標上16
4
重復以上步驟,直到得到一個小於16的商。每一次都把余數右下方標上16,注意我們也需要寫下最後得到的商(即小於16的商) ,並轉為十六進制。
5
把余數和最後的商從左到右按順序寫下,最右是商。得到的十六進制就是這個數,從右往左讀。比如讀作2F34,實際上的值是43F2。
方法 2 的 2:
用Windows計算器

1
開始菜單-附件-計算器,打開計算器。

2
點擊「查看」-「程序員」

3
點擊「十進制」,輸入要轉換的數

4
點擊「十六進制」,自動得到轉換後的數
例子
256
將256轉換為十六進制, 256/16 = 16
因為沒有餘數,0作為余數。
16除以16,得到1,沒有餘數,再把0作為余數。
最後我們知道1/16 小於一,就將1 當做余數,因此得到001,轉過來變為 100。100就是256的十六進製表示!
2500
這個比較麻煩,2500除以16得到 156.25,余數小數(.25)乘以16,得到4 ,作為余數列表中的第一個。
156除以16得到 9.75,乘以16得到 12,加入余數列表,此時要記得轉為十六進制,即是C:4C
因為 9/16小於1,把9加入余數列表,得到 4C9,倒轉得到9C4。 9C4是2500的十六進製表示。

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

代碼如下:

#include"stdio.h"
intmain()
{
intnum=0;
inta[100];
inti=0;
intm=0;
intyushu;
charhex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
printf("請輸入一個十進制整數:");
scanf("%d",&num);
while(num>0)
{
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(" ");
}

程序運行結果:

(10)腳本如何實現10進制轉16進制擴展閱讀

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