4、二进制、八进制、十进制、十六进制之间的转换
来源:互联网 发布:python运维开发教程 编辑:程序博客网 时间:2024/06/08 09:25
1、十进制写法:123:
$n1 = 123;
2、八进制写法: 0123
$n2 = 0123;
3、十六进制写法: 0x123
$n3 = 0x123;
先学习几个单词:
dec: 十进制
bin:二进制
oct:八进制
hex:十六进制
1、十进制转二进制decbin(),除2取余倒着写
例:$v1 = decbin(123); //注意:参数必须是10进制数字,转换后的结果必然是二进制字符串。
<?php
$v1=123;
$v2=decbin($v1); //十进制转换二进制
echo $v2;
?>
注:我们也可以通过手工的方式来完成10进制转2进制的完整过程。
基本做法是:将10进制数字除以2,并取得余数,如果除得的商不为0,则继续除以2,并继续去的余数,直到商为0。然后将所有取得的余数,按“倒序写出”,就是对应的2进制数字
2、十进制转八进制decoct(),除8取余倒着写
使用php系统函数: $r1 = decoct(十进制数字); //结果是一个8进制数字字符串。
<?php
$v1=178;
$v2=decoct($v1); //十进制转换八进制
echo $v2;
?>
注:我们也可以通过手工的方式来完成10进制转8进制的完整过程。
基本做法是:将10进制数字除以8,并取得余数,如果除得的商不为0,则继续除以8,并继续去的余数,直到商为0。然后将所有取得的余数,按“倒序写出”,就是对应的8进制数字:
3、十进制转十六进制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
$v1=178;
$v2=dechex($v1); //十进制转换十六进制
echo $v2;
?>
注:手工运算:
基本做法是:将10进制数字除以16,并取得余数,如果除得的商不为0,则继续除以16,并继续去的余数,直到商为0。然后将所有取得的余数,按“倒序写出”,就是对应的16进制数字
4、二进制转十进制bindec(),每位数值乘以2的权值然后相加
例:$v1 = bindec(“二进制数字字符串”) ;//得到的结果是10进制数字
<?php
$v1="1010110";
$v2=bindec($v1); //二进制转换十进制
echo $v2."其数据类型是:".getType($v2);
?>
注:手工转换:
二进制数字的权值,从右到左,分别是:
2的0次方,2的1次方,2的2次方,2的3次方,2的4次方,2的5次方,.....
即分别是(10进制大小):
1,2,4,8,16,32
手工计算:
1010110
=1*26 + 0*XX + 1*24 + 0*XX + 1*22 + 1*21 + 0 //说明,其中XX表示无所谓的数字值
=64 + 0 + 16 + 0 + 4 + 2 + 0
=86
5、八进制转十进制octdec() ,每位数值乘以8的权值然后相加
例:用系统函数是:$v1 = octdec(“8进制数字字符串”) ;//得到的结果是10进制数字
<?php
$v1="1234";
$v2=octdec($v1); //八进制转换十进制,结果是十进制数
echo $v2."其数据类型是:".getType($v2);
?>
6、十六进制转十进制hexdec(),每位数值乘以16的权值然后相加
例:用系统函数是:$v1 = hexdec(“16进制数字字符串”) ;//得到的结果是10进制数字
<?php
$v1="12AB";
$v2=hexdec($v1); //16进制转换10进制,结果是10进制数
echo $v2."其数据类型是:".getType($v2);
?>
思考:特殊状况
$v1 = bindec(123); //理解过程:bindec(“123”) =>bindec(“1”)=>1
$v2 = bindec(0123); //理解:0123是8进制数字,其10进制值为:83,再当作二进制字符串就是“83”,结果就只能是0
$v3 = bindec(“0123”); //理解:因为直接就是字符串了,就当二进制字符串用,结果是1
$v4 = octdec(0123); //理解:0123是8进制数字,其10进制值为:83,再当作8进制字符串就是“83”,但8进制中没有“8”这个数字,就只识别出一个“3”这个数字
- 十进制、二进制、八进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 十进制,二进制,八进制,十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制,八进制,十进制,十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 课程设计——通讯录(By Grace)
- Leetcode: Reverse Words in a String
- 函数分类、函数声明和定义、函数调用,形参实参、函数嵌套调用
- LightOJ - 1001 Opposite Task
- 源代码版本管理软件cvs 与 svn选择
- 4、二进制、八进制、十进制、十六进制之间的转换
- BC\26\C
- 2015/1/10
- [数学][第二阶段-简单数学题][HDOJ-2096]小明A+B
- 2015年最火爆的赚钱项目 财付通网络POS机 信用卡刷卡神奇 月入万元 财付通网络POS机t0信用卡支付实时到账秒杀手机
- 黑马程序员—流程控制
- c#中csc命令的用法
- 二十二、标准库类型vector的使用、vector介绍、vector构造和初始化、vector常用成员函数
- ImageView的scaleType属性