뒤집기 비트 문제
자세하게는 정수가 제공됩니다.
9 (base 10)
32비트 부호 없는 10진 정수 결과를 반환하도록 함수를 작성해야 합니다.
4294967286 (base 10)
모든 코드는 Javascript로 작성되지만 이 문제를 해결하기 위해 모든 언어를 사용할 수 있습니다.
9에서 4294967286으로 가는 방법은 무엇입니까?
let s=n.toString(2);
let temp=32-s.length;
temp가 32-s.length와 같은 이유 - 변수 s는 이진 형식으로 숫자를 저장합니다. 즉, n=9는 십진수이고 s는 이진수로 "1001"을 저장합니다. 32비트 정수를 생성하여 s의 나머지 비트를 추가하기 위해 주어진 공식에 임시를 할당합니다.
let temp_s="";
for(let i=0;i<temp;i++)
temp_s+="0";
temp_s는 temp 길이의 빈 문자열에 0을 추가합니다.
res_s는 0으로 가득 찬 문자열과 이진 형식의 변환된 숫자 문자열을 보유합니다.
let res_s=temp_s+s;
res_s=00000000000000000000000000001001
flip_s는 1이 0으로 변환되고 0이 1로 변환되므로 뒤집힌 문자열을 저장합니다.
let flip_s="";
for(let i of res_s) {
if(i==="0")
flip_s+="1";
else if(i==="1")
flip_s+="0";
}
여기서 문자열의 모든 요소는 0과 1에 대해 검사되고 각각 1과 0에 할당됩니다.
flip_s=11111111111111111111111111110110
console.log( parseInt(flip_s, 2));
여기서 parseInt() 메서드는 flip_s 변수를 십진수 형식으로 변환하고 결과를 다음과 같이 출력합니다.
4294967286
이 문제는 HackerRank의 1개월 면접 준비 키트의 일부입니다.
Reference
이 문제에 관하여(뒤집기 비트 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/s_vibhor/flipping-bits-problem-524n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)