设为首页收藏labplus社区产品资料库
155
积分值+2
66
掌控币+1
0  关注
92  粉丝
54  帖子
luyi
2021年11月15日

#基础使用#【进制转换01】十进制转换成二进制

一、原理分析

本例使用掌控板模拟“短除法”求十进制数45的二进制值。十进制转二进制的短除法法则为:除二反向取余。


如上图所示,

45/2 = 22余1

22/2 = 11余0

11/2 =  5余1

  5/2 =  2余1

  2/2 =  1余0

  1/2 =  0余1

以上结果,再反向取余数得:101101,即十进制数45的二进制值为:101101

二、mPython代码

接下来用mPython图形代码实现上述过程

1. 完整代码


2. 代码拆解

(1)定义变量num作为需要转换的十进制数值,本案例先设置固定数值。变量num的值在程序执行过程中是需要改变的。因此,定义变量t用来记录num的值,以便程序最后显示结果。

变量s是字符串类型数据,用于存放转换结果的逆序输出。列表my_list用来按顺序存放转换过程中余数的值。


(2)转换过程,将需要转换的数值num整除2的商和余数记录下来,分别用变量shang和yushu来表示,并将余数追加进入列表my_list,同时重新把整数商作为新的被除数num。直到整个式子商为0,最后再把商追加进入my_list列表。此时,整个my_list列表中按顺序存放着0、1序列的余数。


(3)把my_list列表倒序读取出来,以追加的方式存放再字符串s中。


(4)输出转换后的结果。


3. 程序效果


1

点赞

105 次阅读1 人赞