16进制与10进制怎么互相转换

本人正在学C语言,要知道16进制与10进制怎么互相转换,哪位高手帮帮忙,告诉我怎么用笔算解决!!谢谢!!... 本人正在学C语言,要知道16进制与10进制怎么互相转换,哪位高手帮帮忙,告诉我怎么用笔算解决!!谢谢!! 展开
 我来答
xiawei123
高粉答主

2019-08-18 · 每个回答都超有意思的
知道答主
回答量:1626
采纳率:100%
帮助的人:46万
展开全部

1、首先看一下十六进制与十进制的区别和表示方法,

2、十六进制数其实是由二进制数每四位转化分别转化为十进制数而来,

3、十六进制数转化为十进制数可以这样操作,

4、十进制数转化为十六进制数可以先转二进制再转十六进制,

5、十进制也可以直接转十六进制,完成效果图。

要当技术宅66
高粉答主

2019-07-29 · 醉心答题,欢迎关注
知道答主
回答量:566
采纳率:100%
帮助的人:14.5万
展开全部

1、看一下十六进制与十进制的区别和表示方法。

2、十六进制数其实是由二进制数每四位转化分别转化为十进制数而来。

3、十六进制数转化为十进制数可以这样操作。

4、十进制数转化为十六进制数可以先转二进制再转十六进制。

5、十进制也可以直接转十六进制。

6、Excel里提供了函数直接计算十六进制与十进制之间的转化,分别为DEC2HEX和HEX2DEC。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庭曜尚1462
推荐于2017-11-23 · TA获得超过109个赞
知道答主
回答量:141
采纳率:0%
帮助的人:111万
展开全部
进制转换
1。二进制与十进制数间的转换
(1)二进制转换为十进制
将每个二进制数按权展开后求和即可。请看例题:
把二进制数(101.101)2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=(5.625)10
(2)十进制转换为二进制
一般需要将十进制数的整数部分与小数部分分开处理。
整数部分计算方法:除2取余法 请看例题:
十进制数(53)10的二进制值为(110101)2
小数部分计算方法:乘2取整法,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(0或1)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。请看例题:
将(0.5125)10转换成二进制。(0.5125)10=(0.101)2
2。 八进制、十六进制与十六进制间的转换
八进制、十六进制与十六进制之间的转换方法与二进制,同十进制之间的转换方法类似。例如:
(73)8=7*81+3=(59)10
(0.56)8=5*8-1+6*8-2=(0.71875)10
(12A)16=1*162+2*161+A*160=(298)10
(0.3C8)16=3*16-1+12*16-2+8*16-3=(0.142578125)10
十进制整数→→→→→八进制 方法:“除8取余”
十进制整数→→→→→十六进制 方法:“除16取余” 例如:
(171)10=(253)8
(2653)10=(A5D)16
十进制小数→→→→→八进制小数 方法:“乘8取整”
十进制小数→→→→→十六进制小数 方法:“乘16取整” 例如:
(0。71875)10=(0.56)8
(0.142578125)10=(0.3C8)16
3. 非十进制数之间的转换
(1)二进制数与八进制数之间的转换
转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:
(423。45)8=(100 010 011.100 101)2
(1001001.1101)2=(001 001 001.110 100)2=(111.64)8
2。二进制与十六进制转换
转换方法:以小数点为界,分别向左右每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如:
(ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2
(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B。68)16

PS:我个人喜欢先把十六进制换成二进制 在转化成十进制,反之亦然

用C写的函数
使用ltoa或itoa函数
#include <stdlib.h>
#include <stdio.h>

void main( void )
{
char buffer[20];
int i = 3445;
long l = -344115L;
unsigned long ul = 1234567890UL;

_itoa( i, buffer, 10 );//转换成10进制字符
printf( "String of integer %d (radix 10): %s\n", i, buffer );
_itoa( i, buffer, 16 );//转换成16进制字符
printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );
_itoa( i, buffer, 2 );//转换成2进制字符
printf( "String of integer %d (radix 2): %s\n", i, buffer );

_ltoa( l, buffer, 16 );
printf( "String of long int %ld (radix 16): 0x%s\n", l,
buffer );

_ultoa( ul, buffer, 16 );
printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul,
buffer );
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
commey
2007-02-08
知道答主
回答量:86
采纳率:0%
帮助的人:12.4万
展开全部
十六进制转成10进制 ,先转成2进制, 再将二进制转成10进制就行了。好像是不能直接转化。可以加我QQ 教你各个进制之间的转化。107217949
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老秋翁
2007-02-08 · TA获得超过785个赞
知道小有建树答主
回答量:947
采纳率:50%
帮助的人:548万
展开全部
十进制转为十六进制 方法:“除16取余”

余数大于九的分别记作 A、B、C、D、E、F
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式