10进制转化为16进制的算法

发布网友 发布时间:2022-04-23 09:52

我来回答

7个回答

热心网友 时间:2022-04-20 12:05

方法 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的十六进制表示。

热心网友 时间:2022-04-20 13:23

01首先,我们要知道图中的这样一个格式,按照该格式将要转换的数,和它除以16得到的商和余数,填到相应的位置里。

02
例如我们要将7692转换成十六进制,就将7692除以16,得到商为480,余数为12,将7692、480、12填到对应的地方,如图所示。

03
接着,我们再按照步骤二,进行同样操作,一步步,按照格式写好。直到最后得到的数比16小,如图最后是1。

04
最后,再将1除以16,得到商为0,余数为1,当商为0时,就表示转换结束了。

05
在16进制中,十进制中的0~9,在16进制中依然为0~9;而十进制中的10~15,在16进制中则表示为A~F。经过上述过程,我们依次得到12、0、14、1这四个余数,在16进制中这四个数为C、0、E、1。

06
将C、0、E、1依次写到对应的余数旁边,如图所示,从下往上看,则依次是1、E、0、C。

07
这就表示,十进制的7692就等于16进制中的1E0C,7692=1E0CH,在1E0C后面加个H,就表示它是16进制的数。

热心网友 时间:2022-04-20 14:57

除16取余数对应ASCII表得第1位,然后把商继续除得第2位,直到商等于0
65036 除 16,余数 12(C),商40
40 除 16,余数 0(0),商254
254 除 16,余数 14(E),商15
15除16,余数 15(F),商0,结束
得16进制为 C0EF

热心网友 时间:2022-04-20 16:49

除16取余数得最低1位,然后把商继续除得第2位,直到商等于0
65036 除 16,余数 12(C),商40
40 除 16,余数 0(0),商254
254 除 16,余数 14(E),商15
15除16,余数 15(F),商0,结束
得16进制为 FE0C

热心网友 时间:2022-04-20 21:21

java 的具体代码如下,希望对你有帮助,把代码直接复制编译就行,类名test

import java.util.Scanner;

//十进制转十六进制
public class test {
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int ten = 0;
int sixteen = 0;
int max = 0;
int result [] = new int[20];
System.out.print("请输入一个十进制数:");
ten = sc.nextInt();
do{
sixteen = ten % 16;
ten = ten / 16;

if(sixteen > 9) {
sixteen = (sixteen -10)+'A';
result[max] = sixteen ;
max++;
}else {
result[max] = sixteen ;
max++;
}
}while (ten != 0);

//显示
for(int i=max-1;i>=0;i--) {
if(result[i] > 9) {
System.out.printf("%c",result[i]);
}else {
System.out.print(result[i]);
}
}
}

}

热心网友 时间:2022-04-21 00:03

C语言写法 键盘输入

#include<stdio.h>

void hex(int n)//十进制转16进制 递归法
{
int i;
i=n%16;
if (n>0)
{
n/=16;
hex(n);
if(i>=10)
printf("%c",i+55);
else
printf("%d",i);

}
}

void main()
{
int i;
printf("请输入16进制整数:");
scanf("%d",&i);
printf("转换为10进制整数为:");
hex(i);
printf("\n");
}

热心网友 时间:2022-04-21 03:17

#include<iostream.h>
void main()
{
char a[10]={0};
int x=65036,y,z=x;
for(int i=0; x;i++)
{
y=x%16;
if(y>9)a[i]=y-10+'A';
else a[i]=y+'0';
x=x/16;
}
cout<<z<<"的十六进制表示:0x";
for(int j=i-1;j>=0;j--)
cout<<a[j];
cout<<endl;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com