2014-06-18 4 views
0

에 번호를 변환하려고 나는 작동하는 간단한 프로그램을 썼다. 당신이 그것을 변환해야하므로,바이너리 형식

`to_s': wrong number of arguments(1 for 0) (ArgumentError) 
+0

변경 사항은 무엇입니까? '4' 또는'2'? –

+0

@ArupRakshit, 죄송합니다. 우연히 끝나기 전에 질문을 올렸습니다. 지금은 더 완벽 해. – user273072545345

답변

1

당신은 문자열로 시작하는 것 : 이것은 내가 점점 계속 오류입니다

puts 'Please enter a number you would like to see expressed in binary form' 

i = gets.chomp 

b = i.to_s(2) 

puts b 

: 이것은 내가 쓴 것입니다

i.to_i.to_s(2) 

문자열의 #to_s 메서드는 인수를 사용하지 않습니다.

0

그것은 당신이 Fixnum#to_s을 사용할 것으로 보인다하지만 문자열을 반환 gets.chomp 프로그램에서, 당신은 실제로 String#to_s

를 호출 할 수 있도록 당신이 할 수 있습니다 :

i = gets.chomp.to_i 
+0

왜 'Fixnum # tos'가 재정의 된 것이라고 생각하십니까? – tadman

+0

@ tadman 내 잘못입니다. – xlembouras

+0

'(6 * 9) .to_s (13)'은''42 "'를 반환하기 때문에이 방법이 매우 편리합니다. – tadman

1

당신은 chomp 방법이 필요하지 않습니다, #to_i이 처리합니다.

쓰기가로 : Kernel#gets는 항상 당신에게 문자열 객체를 제공하기 때문에 당신이 생각하는대로

puts 'Please enter a number you would like to see expressed in binary form' 

i = gets.to_i 
b = i.to_s(2) 

puts b 

당신은하지 integer에, 만일 문자열 to_s을 요구하고있다.

먼저, 다음 인수 걸리는 Fixnum 인스턴스에 Fixnum#to_s 전화, Fixnum로 변환하지만, String#to_s는 루비에서 불만을 가지고 왜 인수을 허용하지 않습니다.

+0

그런 설명을 부탁드립니다. 매우 감사! =) – user273072545345

관련 문제