亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP的數據類型

發布時間:2020-10-07 14:05:00 來源:網絡 閱讀:522 作者:pcn01 欄目:web開發

PHP的數據類型




整體劃分

·        標量類型: int, float, string, bool

·        復合類型: array, object

·        特殊類型: null, resouce

整數類型int integer

3種整數表示法

·        十進制寫法:123:

        $n1 = 123;

·        八進制寫法: 0123

        $n2 = 0123;

·        十六進制寫法: 0x123

        $n3 = 0x123;

進制轉換問題

先學習幾個單詞:

dec: 十進制

bin:二進制

oct:八進制

hex:十六進制

·        十進制轉二進制decbin(),除2取余倒著寫

$v1 = decbin(123); //注意:參數必須是10進制數字,轉換后的結果必然是二進制字符串。

PHP的數據類型

 

我們也可以通過手工的方式來完成10進制轉2進制的完整過程。

基本做法是:將10進制數字除以2,并取得余數,如果除得的商不為0,則繼續除以2,并繼續去的余數,直到商為0。然后將所有取得的余數,按“倒序寫出”,就是對應的2進制數字:

PHP的數據類型

 

·        十進制轉八進制decoct(),除8取余倒著寫

使用php系統函數: 

$r1 =  decoct(十進制數字)     //結果是一個8進制數字字符串。

PHP的數據類型

我們也可以通過手工的方式來完成10進制轉8進制的完整過程。

基本做法是:將10進制數字除以8,并取得余數,如果除得的商不為0,則繼續除以8,并繼續去的余數,直到商為0。然后將所有取得的余數,按“倒序寫出”,就是對應的8進制數字:

PHP的數據類型


·        十進制轉十六進制dechex(),除16取余倒著寫

16進制的數字包括如下(從0開始):

0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F

對應10進制其實是:

0     1     2     3     4     5     6     7     8     9     10    11    12    13    14    15

 

系統函是:dechex(十進制數字),結果是16進制數字字符串。

PHP的數據類型

手工運算:

基本做法是:將10進制數字除以16,并取得余數,如果除得的商不為0,則繼續除以16,并繼續去的余數,直到商為0。然后將所有取得的余數,按“倒序寫出”,就是對應的16進制數字:

 

PHP的數據類型

 

·        二進制轉十進制bindec(),每位數值乘以2的權值然后相加

先理解一個“權值”概念:

就是某位數字上的該數字所代表的數的大小。比如:

10進制數字1234,其代表:1*10 3+2*102 + 3*101  +4*100  =  1000+ 200 + 30 + 4;

這里,10 3 102101,等等,就稱為權值。

 

二進制轉10進制,就是將每位數值乘以對應位上的權值,然后相加得到的結果。

用系統函數是:

$v1  = bindec(“二進制數字字符串”) //得到的結果是10進制數字

PHP的數據類型

結果:s1 = 86 , 其類型為:integer

 

手工轉換:

二進制數字的權值,從右到左,分別是:

20 21 22 23 24 25.....

即分別是(10進制大小):

1 2  4  8  1632

手工計算:

1010110

=1*26 + 0*XX  + 1*24 + 0*XX  + 1*22 + 1*21 + 0 //說明,其中XX表示無所謂的數字值

=64 + 0 + 16 + 0 + 4 + 2 + 0

=86

 

·        八進制轉十進制octdec() ,每位數值乘以8的權值然后相加

用系統函數是:

$v1  = octdec(“8進制數字字符串”) //得到的結果是10進制數字

PHP的數據類型

結果:s1 = 668,其類型為:integer


手工算法統2進制轉換為10進制,略。

·        十六進制轉十進制hexdec() ,每位數值乘以16的權值然后相加

用系統函數是:

$v1  = hexdec(“16進制數字字符串”) //得到的結果是10進制數字

PHP的數據類型

結果:s1 = 4779,其類型為:integer

 

·        注意:十進制轉為其他進制結果是字符串,其他進制轉為十進制要求給定數據是字符串形式

思考:

$v1 = bindec(123);//理解過程:bindec(“123”) =>bindec(“1”)=>1

$v2 = bindec(0123);//理解:01238進制數字,其10進制值為:83,再當作二進制字符串就是“83”,結果就只能是0

$v3 = bindec(“0123”);//理解:因為直接就是字符串了,就當二進制字符串用,結果是1

$v4 = octdec(0123);      //理解:01238進制數字,其10進制值為:83,再當作8進制字符串就是“83”,但8進制中沒有“8”這個數字,就只識別出一個“3”這個數字

以下代碼測試:

PHP的數據類型

 

浮點類型float double real

有兩種寫法:

$v1 = 1.234;   //帶小數點,,就是浮點類型

$v2 = 1.234E3;//含義是:1.234乘以103次方,即1234,帶E的形式就是浮點數

$v3 = 1234E3//結果值是1234000,但也是一個浮點數。


關于浮點數的細節知識:

    十進制小數轉二進制小數的做法:乘2并順序取整數部分

PHP的數據類型

浮點數不應該直接進行大小比較。因為浮點數在系統內部(CPU級別),很可能都是不精確表達。要想進行比較,我們只能考慮自己應用中的精度要求的基礎上,將其轉換為整數進行比較。

通常的做法是:乘以10的精度位數數次方,比如精度要求3位有效數字,則乘以10的3次方。

PHP的數據類型


當整數運算的結果超出整數的范圍后,會自動轉換為浮點數。

整數的范圍在32位操作系統下,大約正負20多億。


字符串類型 String

   JS中雖然有2種字符串表達形式,但也應該理解為是一種字符串:

        var str1 = '單引號字符串';

        var str2 = "雙引號字符串"; 

    但在php中,單引號與雙引號字符串是有不同細節含義的字符串:

    

PHP中有4種字符串形式:


單引號字符串:

PHP的數據類型

雙引號字符串:

PHP的數據類型

nowdoc(單引號)定界符字符串:

PHP的數據類型

heredoc(雙引號)定界符字符串:

PHP的數據類型


布爾類型:bool , boolean

    用于標識某種只有兩個狀態值的數據:true , false

    在應用中,我們常常會(需要)直接將一個數據(可能是各種其它類型)當作一個布爾值來進行判斷。

    那么此時其實發生的是:會將數據隱含轉換為布爾值。

最常見的語法形式是:

    if(某數據/變量) {

        ...........

    }

那么,在php中,其它各種數據,隱含轉換為布爾值的時候,會當作false的有:0 , 0.0 ,null , "", "" , "0" , array() , 及未定義的變量。其它數據當作true!



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平乐县| 寻乌县| 繁峙县| 永寿县| 彩票| 湄潭县| 北碚区| 蕲春县| 长兴县| 建水县| 东至县| 秦安县| 常德市| 新民市| 雷山县| 容城县| 永安市| 东兰县| 拉萨市| 瓦房店市| 青州市| 田林县| 巴中市| 南溪县| 开远市| 德安县| 团风县| 闻喜县| 皮山县| 六枝特区| 新郑市| 广平县| 阿拉尔市| 都匀市| 休宁县| 兴隆县| 沁源县| 开阳县| 津南区| 荆门市| 宜良县|