2进制10进制16进制之间的互换..doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2进制10进制16进制之间的互换.

课程论文首页 院、系(部) 数学与应用数学 专业 数学与应用数学 班级 072 学号 710401237 姓名 武彦国 课程教师 吴晨煌 课程名称 算法与数据结构 论文题目 2进制10进制16进制之间的互换 成绩 评 语 签字: 年 月 日 复 核 人 意 见 签字: 年 月 日 2进制10进制16进制之间的互换 武彦国 摘要:在日常生活中,人们习惯于使用十进制数记数法,而在计算机内部采用的是二进制表示方法,在表示符号、地址等数据时,为了简化书写又多采用十六进制表示法,本文给出了2进制10进制16进制之间的互相转换的算法及C语言编写的源程序。 关键词:十进制 二进制 十六进制 转换 设计要求: 首先要给出三个选择,1:表示输入的是2进制,2:表示输入的是10进制,3:表示输入的是16进制的数;输完之后,在输入的时候如果输入格式不对要有提示重新输入敲回车输出其它的两个进制。设有10进制数N(如88)先求出N/16的商数M (M=88/16=5)再求出N/16的余数R=N-16*M (R=88-5*16=8)那么16进制数就是MR (MR=58)其中M和R如果大于9,就表示为A B C D E或F16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。 假设有一个十六进数 2AF5, 那么如何换算成10进制呢? 用竖式计算: 2AF5换算成10进制: 第0位:? 5 * 16^0 = 5 第1位:? F * 161 = 240 第2位:? A * 162 = 2560 第3位:? 2 * 163 = 8192? + ------------------------------------- ???????????????? 10997? 直接计算就是: 5 * 160? + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。 只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。 把二进制11110转换为十进制 (11110)2=1*24+1*23+1*22+1*21+0*20=16+8+4+2+0 =(30)10二进制数转换成十六进制数:由于2的4次方=16,所以将二进制数的每四位用一个十六进制数码来表示#include stdio.h #include math.h main() { int error,i,j,k,number_b,number_d,temp; char type; char number_copy[60],number[60]; error=1; number_d=0; printf(please choose type,1--Binery,2--Decimal,3--Hex\n); scanf(%c,type); while((type!=1)(type!=2)(type!=3)) { printf(type error,please input the type again\n); scanf(%c,type); } switch (type) { case 1: { printf(\nplease input the binery number:); scanf(%s,number); /*判断二进制输入是否合法,不合法重新输入*/ while (error==1) { for(i=0;number[i]!=\0;i++) {

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档