Denary到二进制转换程序

时间:2017-08-31 04:53:54

标签: binary

这对二进制程序如何有效?我发现很难理解代码背后发生的事情。

有人可以向前解释第6行吗?

Number = int(input("Hello. \n\nPlease enter a number to convert: "))

if Number < 0:
    print ("Can't be less than 0")
else:
    Remainder = 0
    String = ""
    while Number > 0:
        Remainder = Number % 2
        Number = Number // 2
        String = str(Remainder) + String
    print (String)

2 个答案:

答案 0 :(得分:0)

想法是将二进制数的最后一部分分开,将其粘贴在缓冲区中,然后将其从“数字”中删除。该方法是通用的,也可以用于其他基础。

首先将其视为dec - &gt; dec“转换”了解原则。

假设你有数字174(base10)。如果你想解析它的每个单独的部分(读作“数字”),你可以计算以数字为基数的模数(10),然后进行整数除法以从数字中“删除”该数字。即174%10和174 // 10 =&gt; (编号)17 | 4(提醒)。下一次迭代你从分区得到17,当你执行相同的程序时,它会将它分成1 | 7。在下一次迭代中,你将获得0 | 1,之后“Number”将为0(这是循环的退出条件(而Number> 0))。

在循环的每次迭代中,你取余数(它将是你使用的特定基数的单个数字(它是基础工作方式的基本属性)),将其转换为字符串并将其与字符串连接起来来自之前的迭代(注意代码中的顺序!),一旦你将你的方式分成零,你就会得到转换后的数字。

如前所述,这适用于任何基地;你可以使用base 16转换为hex(虽然你需要为9以上的数字做一些翻译),octal(base 8)等。

答案 1 :(得分:0)

用于将denary转换为二进制的Python代码

if __name__ == '__main__':
cf_dir, cf_file, cf_phys_file = sys.argv[1:4]
os.chdir(cf_dir)
cf = pd.read_csv(cf_file)
cf_phys = pd.read_csv(cf_phys_file)