问题标题:
【十进制数转换二进制后的数字位数问题这道题出于今年的NOIP普及组初赛,题目如下:一个N位的十进制数,转换为2进制数后,对应的二进制数的数字位数可能是多少。这是一道选择题,但是】
问题描述:

十进制数转换二进制后的数字位数问题

这道题出于今年的NOIP普及组初赛,题目如下:一个N位的十进制数,转换为2进制数后,对应的二进制数的数字位数可能是多少。这是一道选择题,但是具体的选项我忘记了,貌似每一个答案都有log,知道的除了告诉答案最好也把过程推一遍,谢谢了

贺军回答:
  进位计数制的基本概念将数字符号按序排列成数位,并遵照某种由低位到高位的进位方式计数表示数值的方法,称作进位计数制。1.十进制十进制计数制由0、1、2、3、4、5、6、7、8、9共10个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满十就向高位进一,即“逢十进一”。如:555.5可以表示成555.5=5×100+5×10+5×1+5×(1/10)一个任意的十进制数都可以表示成:2.八进制八进制计数制由0、1、2、3、4、5、6、7共8个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满八就向高位进一,即“逢八进一”。如:(555.5)8可以表示成(555.5)8=5×16+5×8+5×1+5×(1/8)一个任意的十进制数都可以表示成:3.二进制二进制计数制由0和1共2个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满二就向高位进一,即“逢二进一”。如:(1011.1)2=1×8+0×4+1×2+1×1+1×(1/2)一个任意的二进制数都可以表示成:4.其他进制在日常生活和日常工作中还会使用其他进制数。如:十二进制数、十六进制数、百进制数和千进制数等。无论哪种进制数,表示的方法都是类似的。如:十六进制数由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E和F共十六个符号组成,“逢十六进一”。不同的是用A、B、C、D、E和F分别表示10、11、12、13、14和15六个数字符号。5.基数与权某进制计数制允许选用的基本数字符号的个数称为基数。一般而言,J进制数的基数为J,可供选用的基本数字符号有J个,分别为0到J-1,每个数位计满J就向高位进一,即“逢J进一”。某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为“位权”(简称“权”)。位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。十进制数允许使用十个基本数字符号,所以基数为10,每位数字符号代表的位数的大小是以10为底,数字符号所处位置的序号为指数的整数次幂。为了表达方便起见,常在数字后加一缩写字母后缀作为不同进制数的标识。各种进制数的后缀字母分别为:B:二进制数。Q:八进制数。D:十进制数。H:十六进制数。对于十进制数通常不加后缀,也即十进制数后的字母D可省略。(1)将二进制数转换成对应的十进制数将二进制数转换成对应的十进制数的方法是“按权展开求和”:利用二进制数按权展开的多项式之和的表达式,取基数为2,逐项相加,其和就是对应的十进制数。例1:将二进制数1011.1转换成对应的十进制1011.1B=1×23+0×22+1×21+1×20+1×2-1=8+0+2+1+0.5=11.5D例2:(2)将十进制数转换成对应的二进制数将十进制数转换为对应的二进制数的方法是:对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。例:将十进制117.625D转换成二进制数整数部分:“除以2取余,逆序输出”小数部分:“乘以2取整,顺序输出”所以117.625D=1110101.101B特别提示:将十进制数转换成其他进制数方法与次上述方法类似。(3)将二进制数转换为对应的八进制数由于1位八进制数对应3位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每3位分成一组,各组用对应的1位八进制数字表示,即可得到对应的八进制数值。最左最右端分组不足3位时,可用0补足。例:将1101101.10101B转换成对应的八进制数。所以,1101101.10101B=155.52Q。同理,用相反的方法可以将八进制数转换成对应的二进制数。(4)将二进制数转为对应的十六进制数由于1位十六进制数对应4位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每4位分成一组,各组用对应的1位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足4位时,用0补足。例:将1101101.10101B转换成对应的十六进制数所以1101101.10101B=6D.8AH。同理,用相反的方法可以将十六进制数转换成对应的二进制数。例:将十六进制数5DF.9转换成二进制:例:将二进制数1100001.111转换成十六进制:至于其他的转换方法,如八进制到十进制,十六进制到十进制之间的转换,同样可用按权展开的多项式之和及整数部分用“除基取整数”来实现的。只不过此时基数分别为8和16。当然,更简单实用的方法是借用二进制数做桥梁,用“八——二——十”或“十六——二——八”的转换方法来实现。
其它推荐
热门其它推荐