}
import ja.util.Scanner;
public class test {
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int ten = 0;
int six = 0;
int max = 0;
int result [] = new int[20];
System.out.print("请输入一个十进制数:");
ten = sc.nextInt();
six = ten % 16;
ten = ten / 16;
six = (six -10)+'A';
result[max] = six ;
max++;
}else {
result[max] = six ;
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]);
}}
}}
除16取余数对应ASCII表得第1位,然后把商继续除得第2位,直到商等于0
65036 除 16,余数 12(C),商4064
4064 除 16,余数 0(0),商254
254 除 16,余数 14(E),商15
得16进制为 C0EF
除16取余数得1位,然后把商继续除得第2位,直到商等于0
65036 除 16,余数 12(C),商4064
4064 除 16,余数 0(0),商254
254 除 16,余数 14(E),商15
得16进制为 FE0C
C语言写法 键盘输入
#include
void hex(int n)//十进制转16进制 递归法
i=n%16;
if (n>0)
{n/=16;
if(i>=10)
printf("%c",i+55);
else
printf("%d",i);
}}
void main()
printf("请输入16进制整数:");
scanf("%d",&i);
printf("转换为10进制整数为:");
hex(i);
printf("
");
}
计算机 十进制和二进制的转换
怎样将二进制数转换成16进制数?
x=x/16;二进制转为16进制数的方法如下:整数部分按照从低位到高位的方向,每4位用一个等值的十六进制数来替换,不足4位的在高位用0补够4位;小数部分按照从高位到低位的顺序,每4位用一个等值的十六进制数来替换,不足4位的在低位用0补够4位。例如下图
16进制数转为二进制数的方法如下:在保持高低位次序相对应的基础上,只需将十六进制数的每一位改写为等值的4位二进制数即可第3位: 2 16^3 = 8192,如图所示
十进制数37转换成16进制是多少?
1010十进制数37转换成16进制是25,可以采用“除16取余法”,也可以采用间接转换法,间接转换法就是将十进制数转换成二进制,然后将二进制数转换成十六进制。
ja 的具体代码如下,希望对你有帮助,把代码直接编译就行,类名test采用“除16取余法”的具体计算过程:37/16=2 余5 ,2/16=0 余2 ,然后将余数进行逆向排序,就可以得到37的十六进制数为25。
扩展资料
十进制数转16进制通用计算方法:
对于整数部分:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后将余数进行逆向排序,得出十六进制数。需要注意:当余数为10~15时,需要分别用A~F来表示。
对于小数部分,小数连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。
参考资料来源:
参考资料来源:
十进制516转换成十六进制是多少,详细说明
=(110 0100 1010)二516÷16=32...4
32÷16=2...0
2÷16=0...2
从下往上把每一次的余数依次读出,就是答案:516=(204)16。
10进制数转换成16进制的方法,和转换为2进制的方法类似,变化:除数由2变成16。
扩展资料:
十进制转十六进制
采余数定理分解,例如将487710转成十六进制:
4877÷16=304....13(D)
304÷16=19....0
19÷1每四个二进制数为一组,转成一个十六进制数位,如果二进制高位不足3位时,用零填补。6=1....3
1÷16=0....1
这样就计到487710=130D16。
十进制使用原则:
十进制基于位进制和十进位两条原则,即所有的数字都用10个基本的符号表示,满十进一,同时同一个符号在不同位置上所表示的数值不同,符号的位置非常重要。基本符号是0到9十个数字。
要表示这十个数的10倍,就将这些数字右移一位,用0补上空位,即10,20,30,...,90;要表示这十个数的10倍,就继续左移数字的位置,即100,200,300,...。
要表示一个数的1/10,就右移这个数的位置,需要时就0补上空位:1/10位0.1,1/100为0.01,1/1000为0.001。
参考资料来源:
8进制数转化为16进制数的方法
因此二进制的 1110011011转换为十六进制39B十六进制
二进制
0000
10001
20010
30011
40100
50101
60110
70111
81000
91001
a1010
b1011
c1100
d1101
e1110
之后,将每3个二进制转换为1个八进制,也用替代法,表如下:
二进制
八进制
000
0从下往上读取每一次的余数,就是转换的结果:01
2011
4101
5110
6111
7如果左边位数不足3
个,补0即可。
十六进制
二进制
0000
10001
20010
30011
40100
50101
60110
70111
81000
91001
a1010
b1011
c1100
d1101
e1110
之后,将每3个二进制转换为1个八进制,也用替代法,表如下:
二进制
八进制
000
001
2011
4101
5110
6111
7如果左边位数不足3
个,补0即可。
十进制转十六进制
所以转换成的二进制数字为:11000010110我觉得简单的方法是直接转16进制:
do{1610/16=100……10(A);
100 /16= 6……4;
6 /16= 0……6;
故:1610(10)=64A(16)
因此,只需要把每次的余数保留就是得到的结果,一直除到商为0。
要把1610转换成16进制,代码如下:
1610/16=100……10(A);
100 /16= 6……4;
6 /16= 0……6;
故:1610(10)=64A(16).
先转2进制:
1610/2=805……0;
805 /2=402……1;
201 /2=100……1;
50 /2=25 ……0;
12 /2=6 ……0;
6 /2=3 ……0;
3 /2=1 ……1;
1 /2=0 ……1.
1610(10)= 0110 0100 1010(2)
1610(10)= 64A(16)
2进制——16进制转换表;
0--0000
1--0001
2--0010
3--0011
4--0100
5--0101
6--0110
7--0111
8--1000
A--1010
B--1011
C--1100
D--1101
E--1110
2进制从一位开始(从右向左),把每一位数字分别乘以2^0,2^1,2^2,2^3...然后全部加起来就是对应的10进制数了
2进制转成8进制,从右向左,每三位一组隔开(左边那组可能不到3位),然后用计算10进制的方法,计算每一组的三位二进制数所对应的数字,然后把每一组的结果,从右向左写出来,比如(110110)2进制=(110|110)2进制=(66)8进制
2进制转成16进制同上面类似,只是4位2进制数一组,(110110)2进制=(11|0110)2进制=(36)16进制
n进制转成10进制的,从右向左,每一位分别乘以n^0,n^1,n^2,n^3...然后全部加起来就可以了
没有1进制的数,n进制数,只要用相应的10进制数短除n,反取余数就行(短除,反取余数,自己看相关书吧)
(1610)十=((((01010+1)1010+110)1010+1)1010+0)二
=(((11010+110)1010+1)1010+0)二
=(((1010+110)1010+1)1010+0)二
=((100001010+1)1010+0)二
=((10100000+1)1010+0)二
=(101000011010+0)二
=(11001001010)二
=(64A)十六
二进制,八进制,十进制,十六进制之间怎么转换
hex(n);1.先是十进制转二进制,把十进制数依次除以2直到为0,得出余数,然后得到余数从下往上排列即可。举个例子:100装二进制为1100100,过程如下
100/2=50 余0,50/2=25 余0,25/2=12余1.....1/2=0余1,结果倒过来就是二进制数。
十进制转八进制,十六进制也能类似的用这种方法转换,只是除数换为8,16而已
2.二进制转十进制
比如前面的1100100,从右往左数,02的0次方+02的1次方+12的2次方+...+12的6次方=100(十进制),相应的八进制,十六进制也是这么转换的,只是把2换成8或16.
3.二进制转八进制或十六进制
8进制数是二进制3个为一组的十进制表示,16进制是二进制数的4个为一组的十进制表示。比如前面的1100100,8进制是(001)(100)(100)=144,16进制是(0110)(0100)=64
望采纳!谢谢
这个怎么说能,比较麻烦的.
二进制
八进制
十六进制之间可以直接转换,相应方法:二进制从右往左每三位转换为一个八进制数就可以了.二进制从右往左每四位转换为一个十六进制数就可以了.十进制用辗转除二法,换成二进制,十进制用辗转除八法,换成八进制,十进制用辗转除十六法,换成十六进制.
3BC24 分别对应到二进制就是: 3 0011 B 1011 C 1100 2 0010 4 0100(这里少了一个2的进制位)
连起来就是: 0011 1011 1100 0010 0100
再按照每三个一组分组: 000 111 011 110 000 100 100
0__7_3__6__0__4_4所以8进制就是736044
十进制转换:
1234[10进制] 0 1 2 3 4 5 6 7 8 9 0 当数位上的值超过9就要进1
1000+200+30+4=1103+2102+3101+4100=1234。
21011[2进制] 0 1 当数位上的值超过1就要进1
123+022+121+120=8+0+2+1=11。
1011[8进制]0 1 2 3 4 5 6 7 当数位上的值超过7就要进1
183+181+180=512+8+1=521。
1011[16进制]0 1 2 3 4 5 6 7 8 9 A B C D E F 当数位上的值超过15就要进1
1163+1161+1160=4096+16+1=4113。
二进制转换:
1、十进制到二进制:除2取余数 把余数倒过来 100101
比如:十进制数37
所以转换成的二进制数字为:100101
2、八进制到二进制:一个八进制的位拆分成一个三位的二进制数
比如:[八进制]616
6拆分成 110
1拆分成 001
6拆分成 110
所以转换成的二进制数字为:110001110
3、十六进制到二进制:一个八进制的位拆分成一个四位的二进制数
比如:[十六进制]616{int i;
6拆分成 0110
1拆分成 0001
6拆分成 0110
八进制转换:
1、十进制到八进制:除8取余数 把余数倒过来
比如:2456 转化成八进制数字:4630
2456/8=307,余0;
2、二进制到八进制转换 7=4+2+1 111 八进制的数字是7转换成二进制刚好是111,占3个位
每三个二进制数为一组,转成一个八进制数位,如果二进制高位不足3位时,用零填补。
比如:10011011
010 011 011
2 3 3
因此二进制的10011011转换为八进制结果为233。
十六进制转换:
1、十进制到十六进制:除16倒着取余数
同时我们也可以先将十进制转换成二进制,然后将二进制又转换成十六进制
比如说:1610转换成十六进制
故:1610(10)=64A(16).
2、二进制到十六进制 15=8+4+2+1 1111 十六进制数字是F,即15转换成二进制1111,刚好占4个位
比如:1110011011
0011 1001 1011
拓展资料:
10进制,当然是便于我们人类来使用,我们从小的习惯就是使用十进制,这个毋庸置疑。
16进制,内存地址空间是用16进制的数据表示, 如0x8049324。
编程中,我们常用的还是10进制。
比如:int a = 100,b = 99;
不过,由于数据在计算机中的表示,终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决 问题。但二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:
0000 0000 0000 0000 0110 0100
面对这么长的数进行思考或作,没有人会喜欢。因此,用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。
参考资料:
8进制转2进制和2进制转十六进制还有3TB=多少B在线等答案快呀快、
十六进制小数点左面位对应二进制小数点左面第0位到第3位8转2,每一位用三位二进制数表示
if(six > 9) {2转16,每四位用一位16进制数表示
3TB = 31024102410241024B
我了个去,感觉你是在考试,有木有。
十进制数99转换成16进制是多少
f111163
十进制整数转换为十六进制整数采用"除16取余3100,逆序排列"法。
具体做法是:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为十六进制数的低位有效位,后得到的余数作为十六进制数的高位有效位,依次排列起来。
例如:99
99/16=6……3
6/16=0…......6
故为:63
windows里面附件的计算器,选择程序员模式就可以转化,99的十六进制是63
63(16进制) =616+3=99(十进制)
十六进制的转换
同时我们也可以先将十进制转换成二进制,然后将二进制又转换成八进制16转10
首先把十六进制数的每1位数转换为4个二进制数,直接替代就可以了,表如下:16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X 16的N次方。
例:2AF5换算成10进制:
用竖式计算:
第0位: 5 16^0 = 5
第1位: F 16^1 = 240
第2位: A 16^2= 2560
-------------------------------------
10997
直接计算就是:
5 16^0 + F 16^1 + A 16^2 + 2 16^3 = 10997
16进制到二进制
由于在二进制的表示方法中,每四位所表示的数的值对应16进制的15,即16进制每一位上值,所以,我们可以得出简便的转换方法,将16进制上每一位分别对应二进制上四位进行转换,即得所求:
例:2AF5换算成2进制:
第0位: (5)16 = (0101) 2
第1位: (F)16 = (1111) 2
第2位: (A) 16 = (1010) 2
第3位: (2) 16 = (0010) 2 -------------------------------------
得:(2AF5)16=(0010.1010.1111.0101)2
2转16
16进制就有16个数,0~15,用二进制表示15的方法就是1111,从而可以推断出,16进制用2进制可以表现成0000~1111,顾名思义,也就是每四个为一位。举例:
00111101可以这样分:
0011|1101(位不够可用零代替),对照着二进制的表格,1024 512 256 128 64 32 16 8 4 2 1 (一般例举这么多就够了,如果有小数的话就继续往右边列举,如0.5 0.25 0.125 0.0625……)
1024 512 256 128 64 32 16 8 4 2 1
0 0 1 1| 1 1 0 1
左半边=2+1=3 右半边=8+4+1=13=D
结果,00111101就可以换算成16进制的3D。
8进制和16进制怎么转换
举2个例子来说下:
8进制的1765转换到16进制步骤:
将1转换成3位2进制是001
将7转换成3位2进制是111
将6转换成3位2进制是110
将5转换成3位2进制是101
将这些23 9 B进制数连起来就是001|111|110|101
0011即3
1111即F
0101即5
所以得到(1765)8 = (3F5)16
16进制的AC2F转换成8进制:
将A转换成4位2进制即1010
将C转换成4位2进制即1100
将2转换成4位2进制即0010
将F转换成4位2进制即1111
连起来即1010|1100|0010|1111
然后从后向前3个一组划分前面不足补0得到001|010|110|000|101|111
001即1
010即2
110即6
000即0
101即5
19--100111即7
所以得到(AC2F)16 = (126057)8
先把八进制转换成二进制然后用二进制转化成十六进制反正依然就是了。
转化成二进制用除二取余就是相应的二进制了
二进制转成别的只要每位乘以十的几进制次方就行了。
end
用电脑上面的计算器 转换 方便`````