아하
생활

생활꿀팁

귀중한말똥구리234
귀중한말똥구리234

0x08같은 숫자 0x0n는 무슨 값인가요?

[Flags] enum CarOptions { None = 0x00, SunRoof = 0x01, Spoiler = 0x02, FogLights = 0x04, TintedWindows = 0x08, Hydraulics = 0x16 }

이 예시에서 0x00부터 0x16는 16진수 값인가요? 16진수라면 0x16은 불가능한 것 아닌가요? 그냥 정수를 다르게 표현하는 방식인가요? 진수랑 관련있는 것 같긴한데 저런식으로 숫자를 쓰는 이유랑 종류이름이 궁금합니다.

55글자 더 채워주세요.
4개의 답변이 있어요!
  • 근사한파카16
    근사한파카16

    안녕하세요.

    네 맞습니다.

    0x 를 앞에 붙이는건 16진수 표기법입니다.

    0x16은 (16의 1승) * 1 + (16의 0승) * 6 이라 생각해주시면 됩니다.

    0x10 다음은 0x11이 아닌 0xA입니다. 다음은 0xB이고.. 0xF 다음이 0x10입니다.

    => 16진수는 0부터 15까지 범위를 가지며 10부터 A 11은 B 이런식이죠

    16진수를 사용하는 이유는

    컴퓨터가 0과 1로 이루어진 비트를 기반이기 때문에 이를 16진수로 나타내면 효율적이기 때문입니다. 사람이 보기에도 좋죠

    예를들어

    11010001 이란 8자리 비트는

    4자리 비트단위로 나누어서 보면..

    1101 => 16진수로 D

    0111 => 16진수로 1

    이를 조합하여 0xD1로 표현할 수 있는거죠.

  • 안녕하세요.

    16진수는 1-9까지, 그리고 10은 A로 11은 B로 표현하고, 16이되면 한자리가 올라가게 됩니다.

    즉 0x16은 가능한 숫자이구요, 십진수로 환산하면 1*16 + 6 으로 22가 됩니다.

    16진수를 쓰는 이유는 bit를 표현하기 더 쉽고, 색상같은 경우에 8비트 단위로 표현이 되므로 16진수로 표현하는 것이 더 편하기 때문입니다.

  • 0x16 의 경우 10진수로 변경하게 되면 22라는 숫자가 나오게 됩니다.

    0x16은 16 + 6 = 22 라고 생각하면 될 것 같습니다.

    16진수라고 해서 최대값이 16이 아닙니다.

    한자리당 0~F 까지의 값이 들어갈 수 있는 것이라고 보면 좋을 것 같습니다.

    10진수라고 해서 최대값이 10이 아닌 것과 동일하다고 보면 됩니다.

  • 이 예시에서 0x00부터 0x16는 16진수 값인가요? 16진수라면 0x16은 불가능한 것 아닌가요? 그냥 정수를 다르게 표현하는 방식인가요? 진수랑 관련있는 것 같긴한데 저런식으로 숫자를 쓰는 이유랑 종류이름이 궁금합니다.

    =>0x 라는건 0x 이후의 숫자나문자는 전부 16진수로 표현됩니다 라는걸 선언하는것이구요

    아래 16진수별 10진수 적어놨으니, 살펴보시면 이해가 빨리 될겁니다

    16진수는 0 ~ 9 , A ~ F 로 이루어져있습니다 16진수 10진수 0x00 => 0 0x01 => 1 0x02 => 2 0x03 => 3 : : 0x09 => 9 0x0a => 10 0x0b => 11 0x0c => 12 0x0d => 13 0x0e => 14 0x0f => 15 0x10 => 16 0x11 => 17 0x12 => 18 0x13 => 19 : : 0x19 => 25 0x1a => 26 0x1b => 27