본문으로 바로가기
TaeyoungKim.dev

true·false와 2·8·10·16진수: 조건과 수 표현 읽는 법

CS작성 약 4분 읽기TaeyoungKim
LinkedInX

0x10을 10으로 읽거나, isEmpty와 hasItems를 같은 질문으로 생각하면 코드는 실행돼도 판단이 어긋날 수 있다. 수의 값과 표기법, 조건이 묻는 질문을 나눠 보자.

같은 10도 진법 접두어에 따라 값이 달라지고, 경계값을 포함하는지에 따라 불리언 결과가 바뀐다.

같은 정수를 여러 진수로 어떻게 표현할까?

진수는 사용할 숫자의 개수와 자리값을 정한다. 다음 표의 네 값은 모두 십진수 16을 나타낸다.

진수일반적인 코드 표기십진수 값
2진수0b1000016
8진수0o2016
10진수1616
16진수0x1016

접두사는 값의 일부가 아니라 표기법을 알려 주는 단서다. 언어마다 지원하는 접두사와 숫자 구분 기호가 다를 수 있다. 로그나 설정에서 앞의 0을 임의로 제거하기 전에 문자열 식별자인지 수인지도 확인해야 한다.

binary, octal, decimal, hexadecimal은 각각 2·8·10·16진수를 뜻한다. number는 수나 번호를 넓게 가리키고, numeric은 데이터가 수로 표현·처리될 수 있다는 형용사다.

true false는 값이고 condition은 질문이다

true와 false는 불리언 값이다. condition은 프로그램이 어느 경로를 실행할지 판단하기 위해 평가하는 조건식이다.

text
isActive and retryCount < 3

이 조건에는 현재 활성 상태인지 묻는 값과 재시도 횟수가 3보다 작은지 비교하는 식이 함께 있다. 전체 식이 평가된 결과가 true면 한 경로, false면 다른 경로를 실행할 수 있다.

truthy와 falsy를 사용하는 언어에서는 불리언이 아닌 빈 문자열, 0, 빈 목록 등이 조건에서 거짓처럼 평가될 수 있다. 그러나 빈 값과 데이터 부재가 업무적으로 같은지는 별도 판단이다.

is has can은 어떤 질문을 만들까?

접두어질문예
is현재 어떤 상태인가?isVisible
has무엇을 가지고 있는가?hasPermission
can어떤 행동이 가능한가?canRetry

사용자가 권한을 가지고 있어도 현재 계정 상태 때문에 실행할 수 없을 수 있다. 이때 hasPermission은 true지만 canRetry는 false일 수 있다. 이름이 묻는 질문을 분리하면 긴 조건식을 작은 함수로 나누기도 쉬워진다.

exists contains equals는 무엇을 비교할까?

exists는 대상의 존재, contains는 모음 안의 포함 여부, equals는 두 값이 같은지를 묻는다.

  • 파일이 경로에 존재하는가: exists
  • 태그 목록에 security가 들어 있는가: contains
  • 입력한 코드와 저장된 코드가 같은가: equals

객체 비교에서는 같은 내용인지 같은 인스턴스인지 언어와 API에 따라 다를 수 있다. equals라는 이름만 보고 비교 기준을 추측하지 말고 문서와 테스트를 확인한다.

경계 조건은 이상 이하와 초과 미만을 나눈다

greater than은 초과(>), less than은 미만(<)이다. 경계값을 포함하면 greater than or equal to(>=), less than or equal to(<=)가 된다.

재시도 최대값이 3이라면 retryCount < 3과 retryCount <= 3은 마지막 시도의 포함 여부가 다르다. 2, 3, 4 같은 경계 주변 값을 테스트해야 off-by-one 오류를 찾을 수 있다.

핵심 요약

진수는 같은 값을 다른 자리값 체계로 표현한다. 접두사 0b, 0o, 0x를 확인하고 값과 문자열 식별자를 구분한다. true/false는 값, condition은 그 값을 만드는 질문이다. is/has/can은 상태·보유·가능 여부를, exists/contains/equals는 존재·포함·동등성을 묻는다. 조건문은 번역보다 경계 포함 여부와 평가 대상을 테스트로 고정하자.

작성자

TaeyoungKim

기초 개념을 구현과 검증, 실제 운영 판단까지 연결해 기록합니다.

#boolean#true#false#2진수#16진수#조건문#개발자 영어

함께 읽으면 좋은 글