C++56 [4. 기본자료형] 4.2 비트 스왑 Q 4.2 비트 스왑64비트 정수가 주어졌을 때 i번째 비트와 j번째 비트를 스왑하는 코드를 작성하라.ex) 8비트 예시 01001001 => 00001011간단한 방법은 temp에 i번째 비트와 j번째 비트를 저장해 비트마스크와 비트연산을 통해서로의 값을 바꾸는 것이다.그러나 비트당 두가지값(0,1)을 표현할 수 있다는 점을 이용해 더 빠르게 수행할 수 있다.서로 비트가 다르다면 xor 연산으로 뒤집어 버리면 된다.코드와 코딩결과는 다음과 같다. 2024. 12. 19. [4. 기본자료형] 4.1 패리티 계산하기 [해당 문제는 266가지 문제로 정복하는 코딩 인터뷰]책의 내용의 문제와 풀이를 베이스로 공부하는 내용이다. 문제를 풀기전에 단순하게 문제를 푸는것이 목적이 아닌시간복잡도와 공간복잡도의 관계를 계산하며,자료구조의 이해도와 실력을 향상하는데 목적이 있다.[4. 기본자료형] 단원의 기본 셋팅은 다음과 같다.Q 4.1 패리티 계산하기 2진수의 패리티는 1로 세팅된 비트의 개수와 같다. 즉, 1이 홀수개 이면 1을 출력, 짝수개 이면 0을 출력하는 코드를 작성하라Ex) 1011 => 1, 10001000 => 01. 단순한 방법으로는 1로 세팅된 모든 비트의 개수를 파악하는것 이다.1이 짝수인지 홀수인지만 판별하자. 코드는 다음과 같다.위 코드는 비트수 만큼 연산진행 복잡도가 증가한다.// x>>1; 은 2로 .. 2024. 12. 19. 이전 1 ··· 7 8 9 10 다음