int를 바이너리로 변환하려고 시도하고 바이너리에서 비트 연산을 수행하려고합니다.int를 바이너리로 변환합니다. 비트 연산을 수행합니다.
현재 나의 방법은 int를 가져 와서 to_s(2)
을 호출하지만 이진 문자열이 남았습니다.
내가해야 할 것에 대한 조언이 있으십니까?
int를 바이너리로 변환하려고 시도하고 바이너리에서 비트 연산을 수행하려고합니다.int를 바이너리로 변환합니다. 비트 연산을 수행합니다.
현재 나의 방법은 int를 가져 와서 to_s(2)
을 호출하지만 이진 문자열이 남았습니다.
내가해야 할 것에 대한 조언이 있으십니까?
the_number.to_s(2).split('').map { |x| x.to_i }
# 이진 배열
왜 이것이 올바른 대답인지 설명하십시오. OP가 올바른 대답을 제공하면 OP가 그것에 대해서도 배울 수 있습니다. –
여기에 요점이 나와 있습니다. 문자열을 통해 문자열 split을 매핑 한 다음 각 문자를 int로 변환 할 수 있습니다. –
@BrianA 당신은 the_number.to_s (2) .to_i를 의미합니까? –
간단한 정수는 거의 모든 주요 프로그래밍 언어 (Ruby 포함)에 바이너리로 저장됩니다. 그래서, 당신은 정수 자체에 비트 연산을 수행 할 수 있습니다
>> 6 | 5 # bitwise or
=> 7
>> 6 & 5 # bitwise and
=> 4
>> 6^5 # bitwise xor
=> 3
>> 6 >> 2 # right shift
=> 1
>> 6 << 2 # left shift
=> 24
(편집 :. 이건 내 1000 일 해답이 될 것으로 보인다)
을에 수를 변환 * 모든 것은 * 바이너리 형식입니다. 유일한 차이점은 텍스트 표현입니다. 컴퓨터에는 10 진수 또는 16 진수 같은 것이 없습니다. 바이너리 만. – Linuxios
글쎄, 실제로는 다른 내부 표현 (일반적으로 전통적인 부동 소수점 표현과 관련된 문제를 피하기 위해)을 사용할 수있는 실제 "십진법"유형을 가진 여러 라이브러리 또는 언어가 있습니다. 그러나 일반 "정수"유형은 거의 항상 내부에서 2 진수입니다. – nneonneo
(그렇습니다. 어떤 표현도 가장 낮은 수준의 이진수로 나타납니다.) – nneonneo