十进制数怎么转换成16进制的数?

发布网友 发布时间:2022-03-22 22:35

我来回答

4个回答

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

直接除16,反向取余。如52转换成16进制。52/16=3……4,余数为4;接着3/16=0……3。所以转换的结果为34H。在比如把60536转换成16进制。60536/16=3783……8,3783/16=236……7,236/16=14……12,12对应16进制的C,14/16=0……14,14对应16进制的E,所以最终转换结果为EC78

热心网友 时间:2022-03-23 01:22

以2

287/2=143......1(余数)
143/2=71........1
71/2=35..........1
35/2=17..........1
17/2=8...........1
8/2=4.............0
4/2=2.............0
2/2=1.............0
1/2=0.............1
倒过来写的余数就是100011111

.47
.47x2=0.94.....0(0是0.94的整数部分)
.94x2=1.88.....1
.88x2=1.76.....1
.76x2=1.52.....1
.52x2=1.04.....1
.04x2=0.08.....0
.08x2=0.16.....0
.16x2=0.32.....0
.32x2=0......0
.x2=1.28.....1
.28x2=0.56.....0
.56x2=1.12.....1
:
:
:
小数点顺着写就是 .011110000101
这个看就是无止境的,要看你需要的位数和你的储存空间,题目止到0
所以你的2进制是对的100011111.011110
==========================

287.47 的八进制 整数部分除以8,小数点乘以8

287/8=35......7
35/8=4..........3
4/8=0............4
余数倒过来写就是437

.47
.47x8=3.76....3(整数部分是3)
.76x8=6.08....6
.08x8=0.....0
.x8=5.12....5
.12x8=0.96....0
:
:
:
这个也是无止境的,小数点就是 .36050
八进制就是437.36050
==============================

287.47 的16进制 整数部分除以16,小数乘以16

287/16=17.....F(15)(余数)
17/16=1........1
1/16=0..........1
余数倒过来就是11F

.47
.47x16=7.52....7(整数部分是7)
.52x16=8.32....8
.32x16=5.12....5
.12x16=1.92....1
:
:
:
这也是无止境,小数就是 .7851
16进制就是11F.7851
=======================

如果你不会直接从二进制转化成8或者16进制,可以先把它们转成10进制的,或者画表格
Decimal ,Hexadecimal, Octal, Binary
0, 0, 0, 0000
1, 1, 1, 0001
2, 2, 2, 0010
3, 3, 3, 0011
4 ,4, 4, 0100
5, 5, 5, 0101
6, 6,6, 0110
7, 7, 7, 0111
8, 8, 10, 1000
9, 9, 11, 1001
10, a, 12, 1010
11, b, 13, 1011
12, c, 14, 1100
13, d, 15, 1101
14, e, 16 ,1110
15, f, 17, 1111

呵呵~我不知道你看不看得懂
另外,虚机团上产品团购,超级便宜

热心网友 时间:2022-03-23 02:57

十进制直接除十六,求余,直到商为零,从最后一个余数开始写,直到第一个余数。

热心网友 时间:2022-03-23 04:48

#include <stdio.h>
void aaa(int a,int b)
{
if(a==0)return;
aaa(a/b,b);
if(a%b>9) printf("%c",'A'+a%b-10);
else printf("%c",'0'+a%b);
}
main()
{
aaa(18,16);
}

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