一, 십진수 변환
1, 십진수를 이진수로 변환 decbin() 함수, 다음 예
echo decbin(12); //输出 1100 echo decbin(26); //输出 11010
decbin
(PHP 3, PHP 4, PHP 5)
decbin -- 십진수를 이진수로 변환
설명
string decbin (int number)
주어진 숫자 매개변수의 이진 표현을 포함하는 string을 반환합니다. 변환할 수 있는 최대 값은 10진수로 4294967295이며 결과적으로 32개의 문자열이 생성됩니다.
2, 10진수를 8진수로 변환() 함수
echo decoct(15); //输出 17 echo decoct(264); //输出 410
decoct
(PHP 3, PHP 4, PHP 5)
decoct -- 10진수를 8진수로 변환
설명
문자열 Decoct(정수)
문자열 반환, 포함 주어진 숫자 인수의 8진수 표현. 변환할 수 있는 최대 값은 10진수로 4294967295이며 결과는 "37777777777"입니다.
3, 10진수를 16진수로 변환 dechex() 함수
echo dechex(10); //输出 a echo dechex(47); //输出 2f
dechex
(PHP 3, PHP 4, PHP 5)
dechex -- 10진수를 16진수로 변환
설명
문자열 decex(int 숫자)
다음을 포함하는 문자열을 반환합니다. 주어진 숫자 매개변수의 16진수 표현입니다. 변환할 수 있는 최대 값은 10진수로 4294967295이며 결과는 "ffffffff"입니다.
<?php /** *十进制转二进制、八进制、十六进制 不足位数前面补零* * * @param array $datalist 传入数据array(100,123,130) * @param int $bin 转换的进制可以是:2,8,16 * @return array 返回数据 array() 返回没有数据转换的格式 */ function decto_bin($datalist,$bin) { static $arr=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'); if(!is_array($datalist)) $datalist=array($datalist); if($bin==10)return $datalist; //相同进制忽略 $bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度 $aOutChar=array(); foreach ($datalist as $num) { $t=""; $num=intval($num); if($num===0)continue; while($num>0) { $t=$arr[$num%$bin].$t; $num=floor($num/$bin); } $tlen=strlen($t); if($tlen%$bytelen!=0) { $pad_len=$bytelen-$tlen%$bytelen; $t=str_pad("",$pad_len,"0",STR_PAD_LEFT).$t; //不足一个字节长度,自动前面补充0 } $aOutChar[]=$t; } return $aOutChar; }
둘, 이진수 변환
1, 이진수를 16진수로 bin2hex() 함수
$binary = "11111001"; $hex = dechex(bindec($binary)); echo $hex;//输出f9
bin2hex
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
bin2h ex -- 이진 데이터를 16진수 표현으로 변환
설명
string bin2hex ( string str )
매개변수 str의 16진수 표현인 ASCII 문자열을 반환합니다. 변환에서는 바이트 모드를 사용하며 높은 니블이 우선 적용됩니다.
2, 2진수를 10진수로 변환하는 Bindec() 함수
echo bindec('110011'); //输出 51 echo bindec('000110011'); //输出 51 echo bindec('111'); //输出 7
bindec
(PHP 3, PHP 4, PHP 5)
bindec -- 2진수를 10진수로 변환
설명
숫자 bindec(string bin_string)
binary_string 매개변수 반환 표현된 이진수에 해당하는 십진수입니다.
bindec() 이진수를 정수로 변환합니다. 변환할 수 있는 가장 큰 숫자는 31자리, 즉 10진수로 2147483647입니다. PHP 4.1.0부터 이 함수는 큰 값을 처리할 수 있으며, 이 경우 float 유형을 반환합니다.
<?php /** *二进制、八进制、十六进制 转十进制* * * @param array $datalist 传入数据array(df,ef) * @param int $bin 转换的进制可以是:2,8,16 * @return array 返回数据 array() 返回没有数据转换的格式 */ function bin_todec($datalist,$bin) { static $arr=array('0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,'7'=>7,'8'=>8,'9'=>9,'A'=>10,'B'=>11,'C'=>12,'D'=>13,'E'=>14,'F'=>15); if(!is_array($datalist))$datalist=array($datalist); if($bin==10)return $datalist; //为10进制不转换 $aOutData=array(); //定义输出保存数组 foreach ($datalist as $num) { $atnum=str_split($num); //将字符串分割为单个字符数组 $atlen=count($atnum); $total=0; $i=1; foreach ($atnum as $tv) { $tv=strtoupper($tv); if(array_key_exists($tv,$arr)) { if($arr[$tv]==0)continue; $total=$total+$arr[$tv]*pow($bin,$atlen-$i); } $i++; } $aOutData[]=$total; } return $aOutData; }
3진수 변환
8진수를 10진수로 변환 octdec() 함수
echo octdec('77'); //输出 63 echo octdec(decoct(45)); //输出 45
octdec
(PHP 3, PHP 4, PHP 5)
octdec -- 8진수를 10진수로 변환
설명 숫자 10진수 (문자열 octal_string)
octal_string 매개변수가 나타내는 8진수에 해당하는 10진수를 반환합니다. 변환할 수 있는 가장 큰 값은 10진수로 17777777777 또는 2147483647입니다. PHP 4.1.0부터 이 함수는 큰 숫자를 처리할 수 있으며, 이 경우 float 유형을 반환합니다.
4개의 16진수 변환
16진수를 10진수로 변환 hexdec() 함수var_dump(hexdec("See")); var_dump(hexdec("ee")); // both print "int(238)" var_dump(hexdec("that")); // print "int(10)" var_dump(hexdec("a0")); // print "int(160)"
(PHP 3, PHP 4, PHP 5)
hexdec -- 16진수를 10진수로 변환
설명
숫자 16진수( string hex_string)
hex_string 매개변수가 나타내는 16진수에 해당하는 10진수를 반환합니다. hexdec() 16진수 문자열을 10진수로 변환합니다. 변환할 수 있는 최대값은 7ffffffff이며, 10진수로는 2147483647입니다. PHP 4.1.0부터 이 함수는 큰 숫자를 처리할 수 있으며, 이 경우 float 유형을 반환합니다.
hexdec() 16진수가 아닌 모든 문자를 0으로 바꿉니다. 이렇게 하면 왼쪽의 0은 모두 무시되지만 오른쪽의 0은 값에 포함됩니다.
위 내용은 PHP에서 여러 16진수 시스템 간의 변환을 구현하는 방법에 대한 코드 및 함수 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!