如何把一个10进制数转换成16进制数

作者&投稿:简净 (若有异议请与网页底部的电邮联系)
C语言编程:怎么把一个十进制数转换成为一个十六进制数?~

我们刚学了栈,我做了一个任意进制转换的程序,你看一下,,即使你没学,但思想是一样的
假入你输入的是m,可在设一个数组用来装余数,完整程序如下:
#include
void
main()
{
int
a[10],m,i=0;
printf("please
ennter
a
number
");
scanf("%d",&m);
while(m!=0)
{
a[i++]=m%16;//在装余数的同时用i统计余数的个数
m=m/16;
}
for(i=i-1;i>=0;i--)
{
switch(a[i])
{case
10:printf("A");break;
case
11:printf("B");break;
case
12:printf("C");break;
case
13:printf("D");break;
case
14:printf("E");break;
case
15:printf("F");break;
default:printf("%d",a[i]);
}
}
}

(1)将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果。例如把52换算成二进制数:

所以52对应的二进制数就是110100。
(2)整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加即为十进制。比如将二进制110转换为十进制:


(1)二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用1来表示“开”,0来表示“关”。
(2)十进制计数法是相对二进制计数法而言的,是我们日常使用最多的计数方法(俗称"逢十进一")。它的定义是:“每相邻的两个计数单位之间的进率都为十的计数法则就叫做十进制计数法”。
(3)十进制的有限小数转换成二进制不能保证能精确转换,二进制小数转换成十进制也遇到同样的问题。这也为信息处理带来了很大的不便。甚至为了能够较快的转换十进制数和二进制数,在设计处理器的时候加入了专门的电路和语句来完成这个过程,造成了处理器设计的浪费。因此,可以说十进制不适应现代化信息设备。

一种是采用除16求余法,还有就是先把十进制转二进制再转十六进制。分别举个例子:

1.除16求余

115转十六进制 115/16 商是7 余数是3.用7再除16,商是0,余数是7

故结果是73

2.先转二进制再转十六进制

115的二进制是1110011,整数部份从最低有效位开始,以4位为一组,最高有效位不足4位时以0补齐,每一组均可转换成一个十六进制的值,转换完毕就是十六进制的整数。
0111 0011
7 3

结果73

最少2种方法,一种是端除,一种是用计算器..
端除就是以16为除数取余数.....倒取于.
比如:25D(十进制)---->

25/16 上的是1 是9 所以十六进制是19

16|25
16|1 .......9
16|0 .......1

自己看咯..还有一种是用计算器啊..里面"查看"菜单下不是有个"科学型"选项么? 里面倒那个里面敲看看.....要懂得资源利用,微软给了 就不要浪费自己的脑细胞....

呵呵,非常简单的这个。。
如果你有一点点数学基础你就可以知道
所谓的多少进制,实际就是指每一位的“权”
比如我们通用的十进制,其实就是同一个数字在高一位的时候是第一位时的10倍比如111,从左数第一个1是第二个1的10倍...
同样,16进制数中高位时低位的16倍。
所以19中的1表示1乘以16等于16,16+9=25
明白?


怎么样换算10进制
所以,设有一个二进制数:0110 0100,转换为10进制为:下面是竖式:0110 0100 换算成 十进制 第0位 0 * 20 = 0 第1位 0 * 21 = 0 第2位 1 * 22 = 4 第3位 0 * 23 = 0 第4位 0 * 24 = 0 第5位 1 * 25 = 32 第6位 1 * 26 = 64 第7位 0 * 27 = 0 + --...

把一个十进制数156转换为二进制数。
【答案】:拿十进制数每次除以二,取余数,即使是0也要取,第二次拿上次的上来除2,最后得到一串由0,1组成的数。把这串数重后往前排,就行了。 由此可得 (156)10=(10011100)2

excel图表怎么将十进制数转换成指定进制的数
使用公式来解决问题:给定一个十进制的正整数,将其转换成指定进制的数。如下所示,在单元格A2中是给定的十进制正整数值,单元格B2中是指定的进制,示例中是4进制,单元格C2中是转换后的结果,单元格D2中使用公式检验结果是否正确。在单元格C2中的公式是:=SUMPRODUCT(MOD(FLOOR(A2\/B2^(ROW(INDIRECT...

如何将一个十进制整数转换为十六进制
windows自带的计算器就可以 如果你想要手动计算的话,举例来说吧 5621转换为16进制数的方法是“除16取余”方法,5621\/16=商351余5,16进制最后一位为5 351\/16=商21余15,16进制右边第二位为F 21\/16=商1余5,16进制右边第三位为5 1\/16=商0余1,16进制数右边第四为为1 商0就不继续...

51单片机怎么拆分一个十进制字节的高四位与低四位,
您的“把十进制数20载入26H”这个说法有些糊涂。数的本身是无所谓“进制”的。一个数就是一个数,所谓“进制”只不过是一种表示方式而已。您的这一条指令,不过就是把“这个数”送入26H单元。这个指令中,数字20,只不过是您的程序里写成10进制的样子了,但并不是要求CPU也按照“这个样子”来...

把1个十进制数转换成八进制补码和十六进制补码
①(10)10=(110110 )8补=(0110 )16补 ②(32)10=( 100000)8补=( 11100000)16补 ③(75)10=( 110110101)8补=( 10110101)16补 ④(-617)10=(-110110010111 )8补=( -1110110010111)16补 ⑤(-61)10=( -000011)8补=(-11000011 )16补 ⑥(-111)10=(-110010001 ...

用C语言解决一个十进制数能否被5或8整除
\/\/下面这个表达式表示x要么能被5整除,要么能被8整除。\/\/x%5==0||x%8==0 include<stdio.h> void main(){ int x;scanf("%d",&x);if(x%5==0||x%8==0 )printf("Yes!\\n");else printf("No!\\n");}

设计一个程序,输入一个十进制整数,输出相应的十六进制数。设计一个...
j=i-1;while(j>=0){ num[j]%2?(bin[k++]=1):(bin[k++]=0);while(index<=j){ residue+=num[index];if(residue>=2)quot[suffix++]=residue\/2;else if(index)quot[suffix++]=0;residue=(num[index]%2)*10;index++;} for(i=0;i<suffix;num[i]=quot[i],i++);j=suffix-...

把1个10进制数226转换成2进制数是多少
不断除以2,每除一次得到一个余数为0或1,最后把这些余数合起来就行了。答案 就是 11100010

用C语言程序编写 将一个无符号的十进数转换成十六进制数。
递归太麻烦 16进制数是0-9加上a-e这16个字符来表示,用递归怎么做出统一性?include "stdio.h"int main(){ int n;int i=0,j;char ch[17]="0123456789ABCDEF";char output[100]={0};printf("请输入一个10进制数:");scanf("%d",&n);if(n<0)\/\/输入负数,则转成正数 n=-n;while(...

金湾区15545728612: 十进制转换成十六进制的方法? -
於伯仁怡: 拿10进制数除16,取余数,余数倒着写. 例如:120转换成16进制后就是78 不过你要注意,16进制数是用1-9 外加ABCDEF表示的!

金湾区15545728612: 请问怎么把十进制数转换为十六进制数? -
於伯仁怡: 拿 十进制数 除以十六就可以了 10转16:100以内一点的10转16心算比较快.10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0.如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数. 希望可以帮到你,欢迎追问:)

金湾区15545728612: 如何把十进制数转换为十六进制数 -
於伯仁怡: 连续除以16取余 例如260 260÷16=16......4 16÷16=1......0 1÷16=0......1 从下往上是从高位到低位,所以(260)10=(104)16

金湾区15545728612: 十进制转十六进制怎么转? -
於伯仁怡: 辗转相除法: 比如十进制123转16进制 123/16=7 余 11也就是b 7/16=0 余 7 倒着数上去,就是7b

金湾区15545728612: 如何将一个十进制的数化为十六进制?例如:429 -
於伯仁怡: 你以十进制的数除以你所要转换的进制数,把每次除得的余数记在旁边,所得的商数继续除以进制数,直到余数为0时止.例如你要把100转换成八进制: 100/8=12...(余数为4); 12/8=1.....(余数为4); 1/8=0......(余数为1); 然后把相应的余数从低向高顺着写出来,如上的为144,此即为100的八进制表示形式. 十进制转换为十六进制与二进制与前面的转化为八进制相同,如100转换为十六进制: 100/16=6....(余数为4); 6/16=0......(余数为6); 则以十六进制表示的100形式为64; 采纳哦

金湾区15545728612: 急求:如何将10进制数字转换成16进制啊? -
於伯仁怡: 1990(10)= 124 *16+6 =(7*16+12)*16+6——乘出来= =7*16*16+12*16+6——把16看成一个进位单元(如10进制里的“10”看成一个单元) =700+120+6——注意:12是16进制里的一个 “未进位数”. ——注意:0表示那个层数的占位吧(这种表达不规范,我觉得这样好看而已) =7C6 ——注意:0、1、2、3、4、5、6、7、8、9、A、B、C(C表示12) ——总逻辑——看看里面【多少个16相加组成】此数【1990(10)】

金湾区15545728612: 计算机十进制转换成十六进制应该怎么就算? -
於伯仁怡: 十进制,八进制和十六进制互化应以二进制作为桥梁 1.十进制转化成二进制: 口诀:整数部分除以基数倒取余 小数部分乘以基数正取整 用十进制的数除以2,除到不能再被2除为止所得的余数按从下到上的顺序排就是二进制. 比如:(17.3)10...

金湾区15545728612: 怎样把十进制数字转化为16进制?
於伯仁怡: ox 表示数FFFF为16进制.对应关系: 10以上的数的对应关系 A ------ 10 B ------ 11 C ------ 12 D ------ 13 E ------ 14 F ------ 15从右到左,第一个F表示有15个1,第二个F表示有15个16,第三个F表示有15个256,第四个F表示有15个4096 权依次乘以16,就像10进制的权依次乘以10一样.所以 oxFFFF = 15*1 15*16 15*256 15*4096=65535

金湾区15545728612: 如何将10进制变为16进制 -
於伯仁怡: printf("%x",a);就能把a的值以16进制形式输出了.

金湾区15545728612: 十进制怎样转化为十六进制?
於伯仁怡: 是说手动的换算么?if(是)继续看首先将十进进的255用除二取余的方法转成二进制(11111111)8个1从右到左每四位换成一个16进制数,1111就15对应的16进制就是F两组1111也就是FF.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网