php进制
A. php 进制转换问题
echo base_convert(,2,10)." ";//输出 18843
你把 换成 字符串形式的就对了
""
B. PHP十六进制,十进制,八进制,二进制怎么转回原本的文字
你是在说进制间的转换吗?
base_convert() 函数貌似能帮助你
比如
$a = 120;// 十进制数
// 将此十进制数转换为 2进制
echo base_convert($a , 10 , 2); // 结果是 1111000
// 在吧 1111000 转回 120 十进制 也就二进制赚十进制
echo base_convert(1111000 , 2 , 10);
至于其他进制间转换 就跟上面的操作一样了。
C. 在PHP中,字母a和字母A的二进制,八进制,十进制,十六进制的写法是什么
字母"a":
二进制:1100001
八进制:141
十进制:97
十六进制:61
你可以通过以下代码来查看:
<?php
$num=ord('a');
//二进制
echodecbin($num),',';
//八进制
echodecoct($num),',';
//十进制
echo$num,',';
//十六进制
echodechex($num),',';
D. PHP中怎么以二进制形式表示数字
需要准备的材料分别是:电脑、php编辑器、浏览器。
1、首先,打开php编辑器,新建php文件,例如:index.php。
E. php编程:将26位字母进制转换为10进制数字,如何做
<?php
$str="abcdefg";//写你想要算的
字符串
;
$v;
function
getv($s){
$arr=str_split($s,1);
for
($i=0;$i<strlen($s);$i++)
{
$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;
}
echo
$v;
}
function
getw($w){
$x=1;
for
($i=0;$i<$w;$i++){
$x=26*$x;
}
return
$x;
}
function
gett($ch){
return
(ord($ch)-96);
}
echo
getv($str);
?>
虽然不难,但是麻烦.这题没意思;
注:getv计算总结果;
gett计算
字母
代表的数字;
getw计算
权值
;
F. PHP 进制转换的算法 问题
你这个也没规律阿 ....
G. PHP代码中包含8进制和16进制还有字母混合如何转换成ASCII
<?php
function hex_replace($str){//转换成ASCII
$tmp = substr($str, 0, 1);
if($tmp == 'x' || $tmp == 'X'){ //判断是否是 16 进制, 否则当 8 进制处理
return chr(hexdec($str));
} else {
return chr(octdec($str));
}
}
$str = file_get_contents("cc.txt");
$str = preg_replace('/\\\\([xX][\\dA-Fa-f]{1,2})|\\\\([\\d]{1,3})/e', 'hex_replace(\'$1$2\')', $str);//替换
echo $str;
?>
H. PHP 进制转换 10进制转2进制 自定义个函数
以下是一个转换函数:
function dec_to_bin($datalist,$bin)
{
static$arr=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
if(!is_array($datalist)) $datalist=array($datalist);
if($bin==10) return $datalist; //相同进制忽略
$bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度
$aOutChar=array();
foreach($datalist as $num)
{
$t="";
$num=intval($num);
if($num===0) continue;
while($num>0)
{
$t=$arr[$num%$bin].$t;
$num=floor($num/$bin);
}
$tlen=strlen($t);
if($tlen % $bytelen != 0)
{
$pad_len=$bytelen-$tlen%$bytelen;
$t=str_pad("",$pad_len,"0",STR_PAD_LEFT).$t; //不足一个字节长度,自动前面补充0
}
$aOutChar[]=$t;
}
return$aOutChar;
}
其实,PHP的base_convert、decbin函数就可以完成类似功能。
I. PHP 8进制数
首先011这个数字常量在计算机中是以二进制0000 1001(c编译器的存储形式) 0000 0000 0000 1001(C++编译器中的存储形式)
而十进制9在计算机中的表示方法与其完全相同,计算机操作011还是9实际上都是操作的二进制1001,因此是不会出现改变的。
计算机要想将011处理为11,那么必须取出011这个值,而任何数值常量,不论是int还是double都是以二进制来存储并进行处理的,因此取出的011在计算机看来它是个二进制:0000 1001 而trim函数只能除去字符,对于这个二进制是无能为力的。
如果你想实现一个任务: 检测输入的一个数是几进制,可以参考一下程序:
#include <stdio.h>
#include<stdlib.h>
#define M 10
void main()
{
char value[M];
int i;
char c;
int x;
int flag=0;
char *pstr;
for(i=0;i<M-1;i++){
scanf("%c",&c);
if(c<48||(c>57 && c<65)||(c>69 && c<97)||c>101)
{
value[i]='\0';
break;
}
else
value[i]=c;
}
value[i]='\0';
if(value[0]=='0' && value[1]!='x' && value[1]!='X'){
printf("this a oct:\n");
for(i=1;value[i]!='\0';i++){
if(!(value[i]>47 && value[i]<56) )
{
printf("\nNo a standard value\n");
flag=1;
break;
}
}
if(flag==0){
pstr=&value[1];
x=atoi(pstr);
}
}
printf("%d\n",x);
}
上面是一个判断键盘输入是否为八进制,然后将其转化为整形输出。十六进制类似。
如果你只是想将输入的八进制数去掉0,那么直接可以用x=atoi("011"),则x中存储的就是十进制的11.