>  기사  >  백엔드 개발  >  PHP의 ASCII 코드 및 기본 변환 함수 예제 코드에 대한 자세한 설명

PHP의 ASCII 코드 및 기본 변환 함수 예제 코드에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-17 11:37:442027검색

ASCII 코드 비교 차트는 2개의 단위
1, 제어 문자 0-31과 127
2, 표시 가능한 문자 32-126
(1) 48~57은 0부터 9까지의 10개의 아라비아 숫자입니다.
(2) 65~ 90은 26개의 대문자 영문자이고
(3) 97~122는 26개의 영문 소문자입니다.
(4) 기타 구두점, 연산자숫자 등

문자 A를 예로 들어보세요
Dec Decimal 65
Hx는 16진수를 나타냅니다. 예를 들어 41
Oct는 101과 같이 8진수를 나타냅니다.
Char는 A

PHP 문자 변환 함수 설명

과 같은 표시 문자를 나타냅니다. PHP 함수10진수, 2진수, 8진수, 16진수 변환에 대한 자세한 설명함수 설명]10진수를 2진수로 decbin() 함수10진수를 8진수로 decoct() 함수
10진수를 16진수로 dechex() 함수
2진수 변환 16진수
bin2hex
( ) 함수 2진수를 10진수로 bindec() 함수 8진수를 10진수로 octdec() 함수
16진수를 10진수로 hexdec() 함수
임의의 base_convert() 함수

문자 변환 예
예 1, 문자를 2진수로 변환하는 방법 , 8진수 또는 16진수인 경우 ord() 함수를 사용하여 먼저 문자를 ASCII 값으로 변환한 다음 해당 기본 변환 함수를 사용하여 다음과 같이 변환할 수 있습니다.
a 이 문자는 2진수/8진수/16진수 시스템으로 변환됩니다. , 아래와 같이

a字符的十进制:ord('a'); //输出97
二进制:decbin(ord('a')); //输出1100001
八进制:decoct(ord('a')); //输出141
十六进制:dechex(ord('a')); //输出61

그러면 각 바이너리 시스템의 출력 결과를 위의 ASCII 코드 비교표와 비교하여 확인할 수 있습니다.

예제 2, 다음과 같이 2진수를 16진수 또는 10진수로 변환하는 방법(예: a의 2진수)

采用实例一的方法获取a字符的二进制
decbin(ord('a'));
然后把二进制转换为十六进制或十进制
十六进制:bin2hex(decbin(ord('a')));//输出31313030303031
二进制J:bindec(decbin(ord('a'))); //输出97

상호 변환을 위한 샘플 코드:

class ascii
{
function decode($str)
{
    preg_match_all( "/(d{2,5})/", $str,$a);
    $a = $a[0];
    foreach ($a as $dec)
    {
        if ($dec < 128)
        {
            $utf .= chr($dec);
        }
        else if ($dec < 2048)
       {
            $utf .= chr(192 + (($dec - ($dec % 64)) / 64));
            $utf .= chr(128 + ($dec % 64));
        }
        else
        {
            $utf .= chr(224 + (($dec - ($dec % 4096)) / 4096));
            $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
            $utf .= chr(128 + ($dec % 64));
        }
    }
    return $utf;
}
function encode($c)
{
    $len = strlen($c);
    $a = 0;
    while ($a < $len)
    {
        $ud = 0;
        if (ord($c{$a}) >=0 && ord($c{$a})< =127)
        {
            $ud = ord($c{$a});
            $a += 1;
        }
        else if (ord($c{$a}) >=192 && ord($c{$a})< =223)
        {
            $ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
            $a += 2;
        }
        else if (ord($c{$a}) >=224 && ord($c{$a})< =239)
        {
            $ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
            $a += 3;
        }
        else if (ord($c{$a}) >=240 && ord($c{$a})< =247)
        {
            $ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
            $a += 4;
        }
        else if (ord($c{$a}) >=248 && ord($c{$a})< =251)
        {
            $ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
            $a += 5;
        }
        else if (ord($c{$a}) >=252 && ord($c{$a})< =253)
        {
            $ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
            $a += 6;
        }
        else if (ord($c{$a}) >=254 && ord($c{$a})< =255)
        { //error
            $ud = false;
        }
        $scill .= "&#$ud;";
    }
    return $scill;
}

위 내용은 PHP의 ASCII 코드 및 기본 변환 함수 예제 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.