더스트스더
공대생블로그
더스트스더
전체 방문자
오늘
어제
  • 분류 전체보기 (20)
    • 코딩 (15)
      • 코테 (12)
    • 디지털월드 (2)
      • 통신 (1)
      • 회로 (1)
    • 에러 해결 (2)
    • 취준일기 (1)

블로그 메뉴

  • 글쓰기
  • 블로그 관리

공지사항

인기 글

태그

  • 프로토콜
  • 논리회로
  • 자바스크립트
  • 데이터통신
  • npm
  • Node.js
  • 통신

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
더스트스더

공대생블로그

[자바스크립트] 비트 연산기
코딩/코테

[자바스크립트] 비트 연산기

2022. 5. 23. 16:47

비트 연산기

AND, OR, XOR 비트 연산을 하는 함수를 만드시오

예시

bitwiseAND(7, 12) ➞ 4

bitwiseOR(7, 12) ➞ 15

bitwiseXOR(7, 12) ➞ 11

시도

틀린 코드

비트 연산자에 대한 이해 부족

// AND
const bitwiseAND = (n1, n2) => parseInt(n1.toString(2) & n2.toSting(2),2)
// OR
const bitwiseOR = (n1, n2) => parseInt(n1.toString(2) | n2.toSting(2),2)
// XOR
const bitwiseXOR = (n1, n2) => parseInt(n1.toString(2) ^ n2.toSting(2),2)

n1&n2 값을 2진수로 변환(toString(2)) 후 → 다시 10진수로 변환(parseInt(num, 2)) 하는 코드이다.

자바스크립트 변수 메커니즘 특성 상(부동소수점만을 따름) 굳이 메서드를 사용해서 추가적으로 어렵게 갈 필요가 없으며, 비트 연산자 사용만으로도 간단하게 구현이 가능하다.

해결

맞은 코드

비트 연산자 사용

// AND
const bitwiseAND = (n1, n2) => n1 & n2;
// OR
const bitwiseOR = (n1, n2) => n1 | n2;
// XOR
const bitwiseXOR = (n1, n2) => n1 ^ n2;

배운 것

  • 비트 연산자를 사용할 때, 진법 변환을 해줄 필요가 없다
  • 진법 변환 시
    • 10진수 → 다른 진수 : toString(2)
    • 다른 진수 → 10진수 : parseInt( , 2)

문제 출처

https://edabit.com/challenge/vvuAkYEAArrZvmp6X

'코딩 > 코테' 카테고리의 다른 글

[자바스크립트] 중복 기능의 불필요한 함수  (0) 2022.05.31
[자바스크립트] 배열 내 참의 개수 구하기  (0) 2022.05.31
[자바스크립트] 성냥개비 하우스 문제  (0) 2022.05.23
[자바스크립트] 입력받은 정수까지의 합 구하기  (0) 2022.05.23
[자바스크립트] 배열의 최솟값과 최댓값 찾기  (0) 2022.05.23
    '코딩/코테' 카테고리의 다른 글
    • [자바스크립트] 배열 내 참의 개수 구하기
    • [자바스크립트] 성냥개비 하우스 문제
    • [자바스크립트] 입력받은 정수까지의 합 구하기
    • [자바스크립트] 배열의 최솟값과 최댓값 찾기
    더스트스더
    더스트스더
    열심히살자

    티스토리툴바