본문 바로가기

javascript

자바스크립트 비트 연산자 자바스크립트는 모든 것이 다 10진수 단위로 처리되며, 2진수 처리를 보기는 힘듭니다. 사실 저도 2진수 단위에서까지 처리를 하고 계산하는 코드를 별로 짜고 싶어 하지 않을 뿐더러.. 성능 문제가 심각하지 않다면 일반적 숫자 개념만 있어도 충분히 프로그램을 짤 수 있고 하기 때문에 지금까지 영 많이 쓰지는 않았습니다.일단 사용할 이유가 별로 많지 않기 때문이죠. 이렇게 보다보면 JS에 2진수 처리가 있긴 한걸까 생각할만도 한데.. 그렇다고 2진수 처리가 없는 것은 아니랍니다. 생각보다 JS에는 여러가지 비트 연산자들이 있는었습니다. 간단한 논리 비트 연산자부터 비트를 몇칸씩 움직이는 연산자, 그리고 비트들의 값을 뒤집어버리는 연산자도 있답니다. 물론 이런 연산자들이 무한한 2진수에서 계산을 하는 것은 아.. 더보기
자바스크립트 32 비트 정수 구조, 음수 int 자바스크립트에 사용되는 타입들 중에서 우리가 흔히 말하는 '정수'는 number입니다. C와 같은 시스템 계열 언어들은 대부분 값의 범위가 정해져 있고 소수점도 정해져있을 뿐더러 변수 하나를 계속 동적으로 바꾸는 일도 생각보다 힘듭니다. 하지만 JS는 그런 언어들이랑 거리가 멀기에 사실 동적으로 크기도 바뀌고, 소수도 마음대로 넣을 수 있으며 최대 범위도 엄청나게 크기에(최대크기 실험 링크), 사실상 거의 제한이 없다고 보면 되는데요. 하지만 이런 JS도 이 연산을 할때 만큼은 형식이 아주 제한적으로 바뀝니다. 바로 "비트 연산" 이죠. 그럼, 비트 연산에서 사용되는 정수형인 32비트 정수의 구조를 알아봅시다. 32비트 정수 구조먼저 당연하지만 기본 구조는 2진수 형식(2진수는 여기에서)을 띠고 있습니다.. 더보기
자바스크립트 Number.MAX_SAFE_INTEGER Number.MAX_VALUE 자바스크립트는 아주 편리한 언어입니다. 복잡한 실제 프로그램이 아닌 '비교적' 단순한 웹을 위해 만들어졌기에 빠르고 편리하게 이용할수 있습니다. 하지만 이렇게 편리하다는 장점 뒤에는 약간의 단점이 숨어 있는데요. 바로 '정확성'이 떨어지는 상당히 치명적인 단점입니다. 이중 가장 대표적인 것을 소개하자면, 너무나 큰 수가 들어오면 그냥 Infinity가 되버리곤 하는 것입니다.그래서 자바스크립트에는 수의 최대 한도 이상으로 값을 저장해 값이 손실되는 것을 방지하기 위해서 두가지의 상수가 존재하는데요. 첫번째는 MAX_SAFE_INTEGER이고, 두번째로는 MAX_VALUE가 있습니다. 둘이 어떤 차이점이 있고 어떻게 사용해야 하는지 알아봅시다. Number.MAX_SAFE_INTEGER MAX_SAFE_I.. 더보기