Heim >Backend-Entwicklung >PHP-Tutorial >So implementieren Sie Funktionen im Zusammenhang mit der Dezimal-, Binär-, Oktal- und Hexadezimalkonvertierung in PHP

So implementieren Sie Funktionen im Zusammenhang mit der Dezimal-, Binär-, Oktal- und Hexadezimalkonvertierung in PHP

墨辰丷
墨辰丷Original
2018-05-23 15:00:043166Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung von Funktionen im Zusammenhang mit der Dezimal-, Binär-, Oktal- und Hexadezimalkonvertierung in PHP vor. Er analysiert detailliert die Funktionen, Parameter und die Verwendung verschiedener gängiger Hexadezimalkonvertierungsfunktionen in PHP anhand spezifischer Beispiele , Freunde in Not können sich auf Folgendes beziehen:

Binär:

1.1 Funktion:

bindec(string $binary_string)@

param $binary_string

Der Parameter stellt die zu konvertierende Binärzeichenfolge dar. @return
Gibt das dezimale Äquivalent der Binärzahl zurück, die durch den Parameter $binary_string dargestellt wird.

Funktionsbeschreibung:

Konvertieren Sie eine Binärzahl aufgrund der Größenanforderungen in den Integer-Typ oder in den Float-Typ.

bindec()Interpretieren Sie alle $binary_string-Werte als vorzeichenlose Ganzzahlen. Dies liegt daran, dass die Funktion bindec() ihr höchstwertiges Bit als Betrag und nicht als Vorzeichenbit behandelt. [Das heißt, das höchste Bit 0 oder 1 wird durch bindec() nicht als + oder - dargestellt, sondern durch den Wert 1 ist 1 und 0 ist 0]
bindec()

Hinweis:

Parameter müssen Zeichenketten sein. Die Verwendung anderer Datentypen führt zu unvorhersehbaren Ergebnissen. Beispiel:

<?php
  echo bindec(&#39;10010&#39;) . "\n";
  echo bindec(&#39;00110&#39;) . "\n";
  echo bindec(&#39;1111&#39;) . "\n";

Die obigen Programmanweisungen werden der Reihe nach ausgegeben: 18, 6, 15

1.2. Binär-zu-Hexadezimal-

-Funktion:

bin2hex(string $str)@

param $str

String von ASCII-Zeichen, die konvertiert werden sollen. @return
Gibt den Hexadezimalwert der konvertierten Zeichenfolge zurück.

Funktionsbeschreibung:

Die Funktion wandelt eine Zeichenfolge aus ASCII-Zeichen in einen Hexadezimalwert um. Strings können mit der Funktion pack() zurückkonvertiert werden.

bin2hex() Die Funktionskonvertierung verwendet den Byte-Modus, wobei hohe Nibbles Priorität haben.
bin2hex()Beispiel:

(1)

Konvertieren Sie „chengdu“ in einen Hexadezimalwert:

bin2hex()

<?php
  $str = bin2hex(&#39;chengdu&#39;);
  echo $str;

Das obige Programm Die Anweisung gibt Folgendes aus: 6368656e676475

(2) Konvertieren Sie einen Zeichenfolgenwert von binär in hexadezimal und konvertieren Sie ihn dann zurück:

<?php
  $str = &#39;chengdu&#39;;
  echo bin2hex($str) . "<br/>";
  echo pack("H*", bin2hex($str)) . "<br/>";

Das Obige Programmanweisungen werden der Reihe nach ausgegeben: 6368656e676475, chengdu

2. Oktal:

2.1

Funktion:

@octdec(string $octal_string)param $octal_string

Der Parameter stellt die zu konvertierende Oktalzeichenfolge dar.

@return Gibt das dezimale Äquivalent der Oktalzahl zurück, die durch den Parameter $octal_string dargestellt wird.
Funktionsbeschreibung:

kann große Ganzzahlzahlen verarbeiten, gibt in diesem Fall jedoch den Float-Typ zurück.

Beispiel:octdec()

<?php
  echo octdec( &#39;010&#39; ) . "\n";
  echo octdec( decoct( 45 ) );

Die obige Programmanweisung gibt Folgendes aus: 8, 45

3 . Dezimal:

3.1. Dezimal zu Binär:

Funktion:

@decbin(int $number)param $number

zu sein konvertiert Bei Dezimalzahlen beträgt der maximal konvertierbare Wert 4294967295 in Dezimalzahlen, und das Decbin-Ergebnis ist eine Zeichenfolge mit 32 Einsen.

@return Gibt die Binärzeichenfolge nach der Dezimalzahlenkonvertierung zurück.
Funktionsbeschreibung:

Der maximale Dezimalwert, den die Funktion konvertieren kann, ist 4294967295, und das Ergebnis ist eine Zeichenfolge mit 32 Einsen.

Beispiel:decbin()

<?php
  echo decbin ( 10 ) . "\n";
  echo decbin ( 50 );

Die obige Programmanweisung gibt Folgendes aus: 1010, 110010

3.2 oktal :

Funktion:

@decoct(int $number)param $number

Die zu konvertierende Dezimalzahl, der maximale Wert, der konvertiert werden kann, ist 4294967295 in Dezimalzahl , und sein decot ()Das Ergebnis ist „37777777777“.

@return Gibt einen String zurück, der die oktale Darstellung des angegebenen $number-Parameters enthält.
Funktionsbeschreibung:

Der maximale Dezimalwert, den die Funktion konvertieren kann, ist 4294967295, und das Ergebnis ist „37777777777“.

Beispiel:decoct()

<?php
  echo decoct ( 10 ) . "\n" ;
  echo decoct ( 50 );

Die obigen Programmanweisungen werden nacheinander ausgegeben: 12, 62

3.3. Dezimalkonvertierung Hexadezimal:

Funktion:

@dechex(int $number)param $number

Die zu konvertierende Dezimalzahl.

@return Gibt eine Zeichenfolge zurück, die die hexadezimale Darstellung des angegebenen $number-Parameters enthält.
Funktionsbeschreibung:

Der maximale Dezimalwert, den die Funktion konvertieren kann, ist: PHP_INT_MAX*2 +/- 1, was eine Dezimalzahl auf einer 32- Bitsystem 4294967295, das Ergebnis von

ist ffffffff.

注意:PHP的Integer类型是有符号的,但是dechex()只能处理无符号整数,负整数会以无符号来处理。

范例:

<?php
  echo dechex ( 10 ) . "\n" ;
  echo dechex ( 58 );

以上程序语句会依次输出:a, 3a

4.十六进制:

4.1.十六进制转二进制:

函数:hex2bin(string $data);   转换十六进制字符串为二进制字符串

@param  $data  使用十六进制表示的数据。
@return    返回给定数据的二进制字符串或者在失败时返回FALSE。

函数说明:

如果输入的十六进制字符串是奇数长度或者是无效的十六进制字符串,则会抛出一个E_WARNING级别的错误。

范例:

<?php
  $hex = hex2bin ( "6368656e67206475" );
  echo $hex;

以上程序语句会输出:cheng du

4.2十六进制转十进制:

函数:hexdec(string $hex_string);   转换十六进制字符串为二进制字符串

@param  $hex_string 将要转换的十六进制的字符串。
@return    返回与$hex_string参数所表示的十六进制数等值的十进制数。

函数说明:

hexdec()会忽略它遇到的任意非十六进制的字符。

PHP 4.1.0 开始,该函数可以处理 integer大数字,这种情况下,它会返回float类型。

范例:

<?php
  var_dump ( hexdec ( "See" ));
  var_dump ( hexdec ( "ee" ));
  // 上面两个都输出: "int(238)"
  var_dump ( hexdec ( "that" )); // 输出"int(10)"
  var_dump ( hexdec ( "a0" )); // 输出"int(160)"
  //通过上面的例子可以看出来:hexdec()会忽略它遇到的任意非十六进制的字符。

5.任意进制转换的base_convert() 函数:

函数:base_convert(string $number, int $frombase, int $tobase)

@param $number 将要转换的的数。
@param  $frombase参数$number的进制。
@param  $tobase 将要转换成的进制。
@return   返回一个包含$number以$tobase进制表示的字符串。

函数说明:

$number本身的进制由$formbase来指定。
$formbase和$tobase都只能是2和36(包括2和36)之间的整数值。

注意:由于使用内部的 "double" 或 "float" 类型,base_convert()的操作可能会导致大数值中的精度丢失。

范例:

<?php
  $hexadecimal = &#39;A37334&#39; ;
  echo base_convert ( $hexadecimal , 16 , 2 );
  //print 101000110111001100110100
  echo base_convert ( $hexadecimal , 16 , a);
  //print 10711860

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php简单实现数组分页的方法_php技巧

php使用ffmpeg获取视频信息并截图的实现方法_php技巧

thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决_php技巧

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Funktionen im Zusammenhang mit der Dezimal-, Binär-, Oktal- und Hexadezimalkonvertierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn