最新消息:

教学案例:累加应用——二进制数转十进制数

Python 少儿编程 2685浏览 0评论

教学案例:累加应用——二进制数转十进制数

累加应用——二进制数转十进制数 1【温故知新】累加功能的通用模板

教学案例:累加应用——二进制数转十进制数

2【问题】二进制转换为十进制的代码实现 以1011B转换为十进制为例讲解转换步骤 方法1:逐位按权值求和(从左往右) 1011B=12^3+02^2+12^1+12^0 ① 分析:二进制转换为十进制的过程就是一个批量数据累加的过程,因此程序就可以用累加语句模板来实现二进制转换为十进制的过程。 上述表达式①中可以看成是4个x相加,每个x有什么特征呢?x是二进制数的某1位数字相应的权值。因此,代码如下:

教学案例:累加应用——二进制数转十进制数

方法2:逐位按权值求和(从右往左),这是取的方向不一样,结果是一致的。 1011B=12^0+12^1+02^2+12^3 ② 代码如下:

教学案例:累加应用——二进制数转十进制数

上述代码中,如果熟练了就没有必要a,b先分开,可以直接写一个表达式。我们这样写为了让学生初学时更好理解。 方法3:运用秦九韶算法,该算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。具体可以问度娘。通俗的说十进制数x,再其尾数加1位数y,得到新的数z,z=10x+y;同理对于任何二进制数x,其尾数加1位数y,得到新的数z,z=2*x+y。 二进制数1011B分步过程如下表

教学案例:累加应用——二进制数转十进制数经过以上4个步骤,s的值就是该二进制数所对应的十进制数。怎么转换为代码呢,通过观察同样是累加问题。代码可以是如下:

教学案例:累加应用——二进制数转十进制数

以上是二进制数转换为十进制数的3种方法,1,2两种方法其实是一样的,只是顺序不一样而已,第3种方法比较简单明了。 其它进制转换为十进制数原理是一样的,只需要将相应的权值基数2改掉即可,如十六进制转为十进制数的话,把2改成16即可。 3【Python方法】 Python中实现上述问题,同样可以用一句话实现。现介绍2种方法:

教学案例:累加应用——二进制数转十进制数

int()方法原型 class int(x, base=10) 参数 x — 字符串或数字。 base — 进制数,默认十进制。 返回值 返回整型数据 int()方法一般用于将数值字符串转换为数字,但是如果加上base参数,就可以将不同进制数转换为十进制数。如上述的二进制数”1011B”转换可以用下面的代码。 s=int(’1011′,2) print(s) 4【练习】 编程实现

s=1+2+4+8+16+32+…+2^n(n<=200) (提示:用普通方法和int()方法可以对比试试,时间效率效果不一样的) 5【一点体会】以上是二进制数转换为十进制数的原理及代码实现。我们先给出数学方法,然后将它转换为代码。虽然python提供了简短的语句来实现该问题,但是学生更应该知道原理(解决问题的方法),然后教学生如何将一个问题转换为数学步骤(建模),并转换为程序代码的能力。我们不需要孩子个个当程序员,但一定要具备计算思维:分析问题、寻找规律、解决问题能力,通过这样的训练打破常规思维,达到培养创新实践能力。

您必须 登录 才能发表评论!