정수형


정수는 소수점을 포함하지 않은 숫자를 말합니다.


정수의 정의


정수는 소수점을 포함하지 않기 때문에 컴퓨터 비트 환경에 따라 다르지만 최상의 부호 비트를 제외한 모든 비트를 이진법의 수로 표현합니다.

정수의 정의

  • 정수는 최소한 한 개의 숫자를 넘어야 합니다.
  • 정수는 소수점을 포함하지 않습니다.
  • 정수는 양수 또는 음수가 될 수도 있습니다.
  • 정수는 세 가지 타입으로 표현할 수 있습니다.

10진법, 16진법 헥사 방식, 8진법으로 표현할 수 있습니다. 또한 비트 단위로 비트 연산이 가능한 타입니다.

10진법 표현은 기본적으로 우리가 사용하는 숫자를 입력하면 됩니다.

$a = 5;
$b =123;
$c = 777;

정수가 표현할 수 있는 값은 16bit, 32bit, 64bit 환경에 따라 다릅니다.


singed VS unsigned


정수는 양의 수와 음의 수로 변수의 최상의 부호 비트를 이용하여 수의 범위를 정의합니다. 따라서 정수는 -2,147,483,648 ~ 2,147,483,647의 사이 값을 갖게 됩니다.

singed란 정수의 부호 비트를 이용한 양수/음수 모두를 포함하고 있는 타입이라고 생각하면 됩니다. unsigned는 정수의 부호 비트를 사용하지 않고 모두 양의 수로 값을 처리하는 방식입니다. unsigned는 signed보다 두 배 더 많은 수를 표현할 수 있습니다.


정수변수


정수변수는 $변수명 뒤에 정수를 대입하면 됩니다.

예제 파일 int-01.php

<?php
  $x = 5985;
  var_dump($x);
?>

결과

int(5985) 


정수 확인


PHP는 생성한 변수가 정수변수를 확인할 수 있는 is_int()이라는 내부 함수를 제공합니다.

|관련함수|

bool is_object ( mixed $var )

매개변수 값으로 변수를 전달하면 변수의 오브젝트 타입 여부를 논리값 형태로 반환합니다.

예제 파일 int-02.php

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));

    echo "<br>";
}
?> 

결과

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false) 

위의 예제는 나열된 값들이 정수형 자료인지를 판별합니다.

예제 파일 int-03.php

<?php
  $num = 3;
  if(is_int($num)){
    echo "정수입니다.";
  } else {
    echo "정수가 아닙니다.";
  }
?>

결과

정수입니다.


2진수(정수)


정수는 컴퓨터의 기본 숫자 표현 값인 2진수로 값을 저장하고 출력할 수 있습니다.

2진법은 0b 로 시작하며, 0과 1로 표현을 합니다. PHP에서는 2진법으로 변수에 저장을 하기 위해서는 숫자앞에 0b를 같이 적어 줍니다.

|문법|

$a = 0b00000001;
$b = 0b11111111;

예제 파일 int-04.php

<?php
	// 2진법으로 변수에 값을 저장합니다.
	// 2진법은 0b로 시작합니다.
	$a = 0b00000001;
	$b = 0b11111111;

	// 2진수를 8bit 형태로 출력합니다.
	printf("2진법 : a = %08b, b= %08b <br>",$a, $b);
	printf("10진법 : a = %d, b= %d <br>",$a, $b);

	// 2진수 => 10진수 변환
	echo "2진수(0b11111111) => 10진수(".bindec("0b11111111").")<br>";

	// 10진수 => 2진수 변환
	echo "10진수(8) => 2진수(".decbin("8").")<br>"; 
?>

결과

2진법 : a = 00000001, b= 11111111
10진법 : a = 1, b= 255
2진수(0b11111111) => 10진수(255)
10진수(8) => 2진수(1000)

관련함수) 2진수를 10진수로 변환합니다.

number bindec ( string $binary_string )

bindec() 함수는2진수 문자열을 입력하면 10진수 숫자값을 반환합니다.

관련함수) 10진수를 2진수로 변환합니다.

string decbin ( int $number )

decbin() 함수는 입력값으로 10진수 숫자값을 입력시 16진수 문자열을 반환합니다.


8진수(정수)


정수는 8진수로 값을 표현할 수 있습니다.

8진법은 0~7까지의 숫자로 표현한 값을 말합니다. PHP에서는 8진법으로 변수에 저장을 하기 위해서는 숫자앞에 0을 하나더 적어 줍니다.

|문법|

$a = 0123; 	//10진수로 83
$b = 010;	// 10진수로 8

예제 파일 int-05.php

<?php
	// 8진법으로 변수에 값을 저장합니다.
	// 8진법은 0로 시작합니다.
	$a = 0123; 	//10진수로 83
	$b = 010;	// 10진수로 8

	// 2진수를 8bit 형태로 출력합니다.
	printf("8진법 : a = %o, b= %o <br>",$a, $b);
	printf("10진법 : a = %d, b= %d <br>",$a, $b);

	// 8진수 => 10진수 변환
	echo "8진수(123) => 10진수(".octdec("123").")<br>";

	//10진수 => 8진수 변환
	echo "10진수(8) => 8진수(".decoct("8").")<br>"; 

?>

결과

8진법 : a = 123, b= 10
10진법 : a = 83, b= 8
8진수(123) => 10진수(83)
10진수(8) => 8진수(10)

관련함수) 10진수를 8진수로 변환합니다.

string decoct ( int $number )

decoct() 함수는 입력값으로 10진수 숫자값을 입력시 8진수 문자열을 반환합니다.

관련함수) 8진수를 10진수로 변환합니다.

number octdec ( string $octal_string )

octdec() 함수는 8진수 문자열을 입력하면 10진수 숫자값을 반환합니다.


16진수(정수)


정수는 헥사 값인 16진수로 값으로 표현할 수 있습니다.

16진법은 0~9, A~F 의 값을 가집니다. PHP에서는 16진법으로 변수에 저장을 하기 위해서는 숫자 앞에 0x를 같이 적어 줍니다.

|문법|

$a = 0x01;
$b = 0xa8;
$b = 0xff;

예제 파일 int-06.php

<?php
	// 16진법으로 변수에 값을 저장합니다.
	// 16진법은 0x로 시작합니다.
	$a = 0x01;
	$b = 0xa8;
	$b = 0xff;

	// 2진수를 8bit 형태로 출력합니다.
	printf("16진법 : a = %x, b= %x, c= %x <br>",$a, $b, $c);
	printf("10진법 : a = %d, b= %d, c= %d <br>",$a, $b, $c);

	// 16진수 => 10진수 변환
	echo "16진수(a8) => 10진수(".hexdec("a8").")<br>";

	//10진수 => 16진수 변환
	echo "10진수(255) => 16진수(".dechex(255).")<br>"; 

?>

결과

16진법 : a = 1, b= ff, c= 0
10진법 : a = 1, b= 255, c= 0
16진수(a8) => 10진수(168)
10진수(255) => 16진수(ff)

|관련함수| 16진수를 10진수로 변환합니다.

number hexdec ( string $hex_string )

hexdec() 함수는 16진수 문자열을 입력하면 10진수 숫자값을 반환합니다.

|관련함수| 10진수를 16진수로 변환합니다.

string dechex ( int $number )

dechex() 함수는 입력값으로 10진수 숫자값을 입력시 16진수 문자열을 반환합니다.