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 ~ 9 및 A ~ 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