这对二进制程序如何有效?我发现很难理解代码背后发生的事情。
有人可以向前解释第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)
答案 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)