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.