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),商4064
4064 除 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),商4064
4064 除 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;
}