PHP 정수 자료형의 십진법, 이진법, 8진법, 16진법 분류

PHP 정수 자료형은 무엇일까요? 숫자의 구분 기준인 정수와 실수 중에서 정수 범위를 다룹니다. 정수는 십진법, 이진법, 8진법, 16진법을 PHP에서 모두 다루고 있습니다. 각 진법별로 앞에 붙는 기호가 달라집니다.

PHP 정수

PHP 프로그래밍에서 사용할 수 있는 숫자에는 정수형과 실수형이 있습니다. 정수는 -3, -2, -, 1, 2 등 소수점없이 딱 떨어지는 수의 집합을 말합니다. 반면 실수는 소수, 분수, 무리수 등으로 소수가 유한하거나 무한하거나 근사값인 경우가 있습니다. 물론 허수는 제외됩니다.

  • 정수 : …, -3, -2, -1, 0, 1, 2, 3, … 등 소숫점 없이 딱 떨어지는 수의 모음
  • 실수 : 정수, 소수(1.2, 1.3333….), 무리수(√2, √7), 유리수(1/2, 54/37) 등 허수를 제외한 모든 수

PHP 십진법 정수 표기

십진법을 사용하는 일반적인 정수는 다른 프로그래밍언어와 마찬가지로 숫자를 바로 대입하면 됩니다.

$a = 3;     //양의 정수
$b = 0;     //0
$c = -3;    //음의 정수

PHP 이진법, 8진법, 16진법

십진법의 정수는 다른 진법으로도 표현할 수 있습니다.

  • 2진법0, 1 두 개의 숫자로 자릿수를 표현합니다.
  • 3진법은 0, 1, 2 세 개의 숫자로 자릿수를 표현합니다.
  • 4진법은 0, 1, 2, 3 네 개의 숫자로 자릿수를 표현합니다.
  • 8진법0, 1, 2, 3, 4, 5, 6, 7 여덟 개의 숫자로 자릿수를 표현합니다.
  • 10진법0, 1, 2, 3, 4, 5, 6, 7, 8, 9 열 개의 숫자로 자릿수를 표현합니다.
  • 16진법0 ~ 9A ~ F열 여섯개의 숫자로 자릿수를 표현합니다.

헷갈리는 것 같아도 엑셀에 순서대로 몇 번 써보면 쉽게 패턴을 이해할 수 있습니다.

10진법 2진법 8진법 16진법
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14
21 10101 25 15
22 10110 26 16
23 10111 27 17
24 11000 30 18
25 11001 31 19
26 11010 32 1A
27 11011 33 1B
28 11100 34 1C
29 11101 35 1D
30 11110 36 1E
31 11111 37 1F
32 100000 40 20
33 100001 41 21
34 100010 42 22
35 100011 43 23
36 100100 44 24
37 100101 45 25
38 100110 46 26
39 100111 47 27
40 101000 48 28

PHP 16진법 정수 입력 및 출력

PHP에서 16진법은 숫자 앞에 0x 기호를 삽입합니다. 이후 표기는 16진법 규칙을 그대로 사용합니다.

<?php
//16진법 정수 0 ~ 16
  $num0 = 0x0;
  $num1 = 0x1;
  $num2 = 0x2;
  $num3 = 0x3;
  $num4 = 0x4;
  $num5 = 0x5;
  $num6 = 0x6;
  $num7 = 0x7;
  $num8 = 0x8;
  $num9 = 0x9;
  $num10 = 0xA;
  $num11 = 0xB;
  $num12 = 0xC;
  $num13 = 0xD;
  $num14 = 0xE;
  $num15 = 0xF;
  $num16 = 0x10;

//10진법으로 출력
echo
"
  $num0<br>\n
  $num1<br>\n
  $num2<br>\n
  $num3<br>\n
  $num4<br>\n
  $num5<br>\n
  $num6<br>\n
  $num7<br>\n
  $num8<br>\n
  $num9<br>\n
  $num10<br>\n
  $num11<br>\n
  $num12<br>\n
  $num13<br>\n
  $num14<br>\n
  $num15<br>\n
  $num16<br>\n
";
?>

PHP에서 <br>은 브라우저상의 줄바꿈, \n은 소스코드상의 줄바꿈 입니다. 둘 다 동시에 사용하면 브라우저, 소스코드상에서 모두 줄바꿈이 발생합니다.

결과

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

PHP 8진법 정수 입력 및 출력

PHP에서 8진법 정수는 앞에 0을 붙입니다. 8진법에서 7 다음의 숫자는 10입니다. 물론 십진법으로는 8입니다.

<?php
//8진법 정수 0 ~ 8
  $num0 = 00;
  $num1 = 01;
  $num2 = 02;
  $num3 = 03;
  $num4 = 04;
  $num5 = 05;
  $num6 = 06;
  $num7 = 07;
  $num8 = 010;

//10진법으로 출력
echo
"
  $num0<br>\n
  $num1<br>\n
  $num2<br>\n
  $num3<br>\n
  $num4<br>\n
  $num5<br>\n
  $num6<br>\n
  $num7<br>\n
  $num8<br>\n
";
?>

결과

0
1
2
3
4
5
6
7
8

PHP 2진법 정수 입력 및 출력

PHP에서 이진법 정수는 앞에 0b 기호를 붙입니다.

<?php
//2진법 정수 0 ~ 10
  $num0 = 0b0;
  $num1 = 0b1;
  $num2 = 0b10;
  $num3 = 0b11;
  $num4 = 0b100;
  $num5 = 0b101;
  $num6 = 0b110;
  $num7 = 0b111;
  $num8 = 0b1000;
  $num9 = 0b1001;
  $num10 = 0b1010;

//10진법으로 출력
echo
"
  $num0<br>\n
  $num1<br>\n
  $num2<br>\n
  $num3<br>\n
  $num4<br>\n
  $num5<br>\n
  $num6<br>\n
  $num7<br>\n
  $num8<br>\n
  $num9<br>\n
  $num10<br>\n
";
?>

결과

0
1
2
3
4
5
6
7
8
9
10