유틸리티 소개

10진수 255를 2진수로 바꾸면 11111111이 되는 이유

컴퓨터 기초 공부하다가 진법 변환이 나왔다. 10진수 255가 2진수로 11111111이 된다고 한다. 왜 그런지 이해하려면 직접 계산해봐야 하는데, 손으로 하기엔 번거롭다.

진법이 뭔지 간단히

우리가 일상에서 쓰는 숫자는 10진법이다. 0~9까지 10개 숫자를 쓴다. 컴퓨터는 2진법(0과 1만 사용), 16진법(0~9, A~F)도 많이 쓴다.

진법 변환기에 255를 넣고 10진수에서 2진수로 바꾸면 11111111이 나온다. 8자리 1이 꽉 차있다.

255가 특별한 숫자인 이유

컴퓨터에서 1바이트는 8비트다. 8자리 2진수로 표현 가능한 최대값이 11111111, 즉 255다. IP 주소에서 각 숫자가 0~255인 것도 이 때문이다.

2진수 변환으로 확인해보면:

  • 0은 00000000
  • 1은 00000001
  • 128은 10000000
  • 255는 11111111

16진수로는 FF다

255를 16진수 변환하면 FF가 나온다. 색상 코드에서 #FFFFFF가 흰색인 이유가 여기에 있다. RGB 각각 255, 255, 255라는 뜻이고 16진수로 FF, FF, FF다.

10진수 변환으로 거꾸로 FF를 10진수로 바꾸면 255가 나온다. 16진수의 F는 10진수 15니까 F(15) x 16 + F(15) = 255.

8진수도 있다

유닉스/리눅스에서 파일 권한 설정할 때 755, 644 같은 숫자가 나온다. 이게 8진수다. 8진수 변환으로 755를 10진수로 바꾸면 493이다.

파일 권한 777은 8진수로 모든 권한(읽기+쓰기+실행)을 의미한다. 10진수로는 511.

프로그래밍할 때 왜 필요한가

비트 연산, 메모리 주소, 네트워크 서브넷 마스크 등에서 진수 계산기가 필요하다. 서브넷 마스크 255.255.255.0을 2진수로 보면 어느 비트까지 네트워크 부분인지 알 수 있다.

바이너리 변환 결과 11111111.11111111.11111111.00000000이 된다. 앞 24비트가 1이니까 /24 서브넷이라는 뜻.

ASCII 코드 변환도 된다

문자 A의 ASCII 코드는 65다. ASCII 코드 변환으로 65를 16진수로 바꾸면 41. 2진수로는 01000001.

프로그래밍에서 문자를 숫자로, 숫자를 문자로 바꿀 때 이런 변환을 알아야 한다.

36진수까지 가능하다

2진수, 8진수, 10진수, 16진수 외에도 36진수 변환까지 지원한다. 36진수는 0~9, A~Z까지 36개 문자를 사용한다. URL 단축이나 ID 생성에 쓰이기도 한다.

사용자 정의 진법도 되니까 2~36 사이 아무 진법이나 변환 가능하다.

진법 변환표도 제공

0~255까지 숫자의 2진수, 8진수, 10진수, 16진수 진법 계산기 결과를 표로 볼 수 있다. 자주 쓰는 값은 표에서 바로 찾으면 빠르다.

정리

255가 2진수로 11111111인 건 진법 변환기로 바로 확인할 수 있다. 컴퓨터 과학 공부하거나 네트워크 설정할 때 유용하다. 직접 계산하면 실수하기 쉬운데 도구 쓰면 정확하다.