20190918数值累加应用二进制转换为十进制公开课.docx
-
资源ID:28302710
资源大小:118.50KB
全文页数:2页
- 资源格式: DOCX
下载积分:6金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
20190918数值累加应用二进制转换为十进制公开课.docx
累加应用二进制数转十进制数1【温故知新】累加功能的通用模板python中sum()方法实现批量数据累加2【问题】二进制转换为十进制的代码实现以1011B转换为十进制为例讲解转换步骤方法1:逐位按权值求和(从左往右)1011B=1*23+0*22+1*21+1*20 分析:二进制转换为十进制的过程就是一个批量数据累加的过程,因此程序就可以用累加语句模板来实现二进制转换为十进制的过程。上述表达式中可以看成是4个x相加,每个x有什么特征呢?x是二进制数的某1位数字*相应的权值。因此,代码如下:方法2:逐位按权值求和(从右往左),这是取的方向不一样,结果是一致的。1011B=1*20+1*21+0*22+1*23 代码如下:上述代码中,如果熟练了就没有必要a,b先分开,可以直接写一个表达式。我们这样写为了让学生初学时更好理解。方法3:运用秦九韶算法,该算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。具体可以问度娘。通俗的说十进制数x,再其尾数加1位数y,得到新的数z,z=10*x+y;同理对于任何二进制数x,其尾数加1位数y,得到新的数z,z=2*x+y。二进制数1011B分步过程如下表1011B二进制数每1位初始值s=0第1次取的数1s=2*s+ 1第2次取的数0s=2*s+ 0第3次取的数1s=2*s+ 1第4次取的数1s=2*s+ 1经过以上4个步骤,s的值就是该二进制数所对应的十进制数。怎么转换为代码呢,通过观察同样是累加问题。代码可以是如下:以上是二进制数转换为十进制数的3种方法,1,2两种方法其实是一样的,只是顺序不一样而已,第3种方法比较简单明了。其它进制转换为十进制数原理是一样的,只需要将相应的权值基数2改掉即可,如十六进制转为十进制数的话,把2改成16即可。3【python方法】Python中实现上述问题,同样可以用一句话实现。现介绍2种方法:列表生成式利用lambda表达式和reduce()函数除此之外,python利用int()方法,将一个数字字符串转换十进制数。int()方法原型class int(x, base=10)参数x - 字符串或数字。base - 进制数,默认十进制。 返回值 返回整型数据int()方法一般用于将数值字符串转换为数字,但是如果加上base参数,就可以将不同进制数转换为十进制数。如上述的二进制数”1011B”转换可以用下面的代码。4【练习】编程实现s=1+2+4+8+16+32+.+2n(n<=200)(提示:用普通方法和int()方法可以对比试试,时间效率效果不一样的)