数据类型之整型、浮点型、字符串类型和布尔类型

数据类型

整体划分

  1. 标量类型:int,float,string,bool
  2. 复合类型:array,object
  3. 特殊类型:null,resource

整数类型 :int,integer

3种整数表示法

  • 十进制写法:123

$n1=123;

  • 八进制写法:0123

$n2=0123;

  • 十六进制写法:0x123

$n3=0x123

进制转换

Dec 十进制 bin 二进制 oct 八进制 hex 十六进制

  • 十进制转为二进制decbin(),除二取余倒着写

$v1=decbin(123);      //decbin函数内为十进制,$v1为123的二进制

基本做法:将十进制数字除以二并取得余数,如果除得的商不为0,则继续除以2并取得余数直到商为0.然后将所有的余数按“倒序写出”,就是对应的2进制数字

  • 十进制转为八进制decoct(),除以八取余倒着写

$r1=decoct(123);         //与上面类似

基本做法:将十进制数字除以八并取得余数,如果除得的商不为0,则继续除以八并取得的余数直到商为0,然后将所有的余数“倒序写出”,就是对应的八进制数字

 基本做法:将十进制数字除以16并取得余数,如果除得的商不为0,则继续除以16并取得的余数直到商为0,然后将所有的余数“倒序写出”,就是对应的16进制数字

扫描二维码关注公众号,回复: 5179521 查看本文章

  • 十进制转为16进制dechex(),除以16取余倒着写
  • 二进制、八进制、十六进制转化为十进制:

Bindec(),octdec(),hexdec()函数分别代表转化函数

基本做法:每位数字乘以2的权值然后相加

运行结果:

注意:十进制转为其他进制结果是字符串,其他进制转为十进制要求给定数据的字符串形式

思考:

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

$v2=bindec(0123);//理解:0123是8进制数字,其十进制是83,再当作二进制字符串“83”,其值为0;

$v3=bindec(“0123”)//理解,“0123”就是一个字符串,其值为1

$v4=octdec(0123) //理解,0123是8进制数字,其十进制是83,再当作8进制字符串“83”,其值为3

浮点类型:float,double,real

两种写法:

$v1=1.234;    //带小数点就是浮点类型

$v2=1.234E3;//带E的形式就是浮点类型

$v3=1234E3;//浮点类型     

关于浮点数的细节知识

 

  • 十进制小数转二进制小数的做法:小数部分乘2并顺序取整数部分—没有系统函数
  • 浮点数不应该直接进行大小写比较

因为浮点数在系统内部(cpu级别),很可能都是不精确表达。

要想进行比较,只能考虑自己应用中的精度要求的基础上将其转换为整数进行比较

通常做法是:乘以10的精度位数数字方,比如精度要求三位有效数字就乘以1000

  当整数运算的结果超出整数的范围后会自动转化浮点数 

字符串类型string

Js中,虽然有两种字符串表达形式,但也应该理解成一种

       Var str1=‘单引号字符串’;

       Var st2=”双引号字符串”;

但在php中,单引号和双引号字符串是由不同细节的字符串

PHP中,有4种字符串形式

单引号字符串:

结果:

双引号字符串:

结果:

Nowdoc(单引号)定界字符串:

结果为:

Heredoc(双引号)定界字符串:

结果为:

布尔类型:bool,boolean

用于标识某种只有两个状态值的数据:true,false

在应用中,常常需要直接将一个数据(可能是各种其他类型)当做布尔值来进行判断

发生:将数据隐含转换为布尔值。

最常见的语法形式:

If( 某数据/变量){

……

}

在PHP中,其他各种数据隐含转换为布尔值的时候会当做false的有:

0

0.0

Null

“”

“0”

Array(); //空数组

未定义的变量                    //尽量避免

其他的数据当true

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/su_yi_song/article/details/86835183