ruby – 当从文件中读取时,为什么在`to_i`之上需要`to_s`?
发布时间:2020-12-17 03:24:50 所属栏目:百科 来源:网络整理
导读:我从文件中读取了一个数字“98”,并尝试使用input.to_i(2)将其转换为二进制,但是我得到了0. input=File.read("input.dat")puts "Input is: #{input}"puts "Normal way is #{input.to_i(2)}"puts "It works this way #{input.to_i.to_s(2)}"puts "Calling the
我从文件中读取了一个数字“98”,并尝试使用input.to_i(2)将其转换为二进制,但是我得到了0.
input=File.read("input.dat") puts "Input is: #{input}" puts "Normal way is #{input.to_i(2)}" puts "It works this way #{input.to_i.to_s(2)}" puts "Calling the number directly works #{98.to_s(2)}" 输出是: Input is: 98 Normal way is 0 It works this way 1100010 Calling the number directly works 1100010 解决方法
to_i(2)将字符串中的表达式解释为二进制数,该二进制数应仅包含“0”和“1”.由于“98”无效,因此默认情况下,设计结果为0. (它本来可以设计为返回nil或引发错误,但不知何故,它是以这种方式设计的.)
要将数字显示为二进制,您需要to_s(2)因为它以二进制形式给出数字的表达式. 作为一个数字,二进制数,十进制数等没有区别.所有都有一个数字.这些二进制,十进制等概念的含义是它们表示为字符串的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |