導航:首頁 > 編程語言 > php二進制操作

php二進制操作

發布時間:2023-04-27 11:35:19

php函數怎麼把十進制轉換為二進制

PHP decbin函數的作用是把十進制轉換為二進制。

用法:

參數 描述

dec_number 必需。規定要轉換的十進制數。

示例:

<?php
echodecbin("3");
echodecbin("1");
echodecbin("1587");
echodecbin("7");
?>

輸出:

11
1
11000110011
111

② PHP 字元串 二進制

不知道樓主問的是不是php中把字元串轉換成二進制的函數?如果是的話,可以進行如下處理

ASCII(str)
返回字元串str的最左面字元的ASCII代碼值。如果str是空字元串,返回0。如果str是NULL,返回NULL。

ORD(str)
如果字元串str最左面字元是一個多位元組字元,通過以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字元的ASCII代碼值來返回多位元組字元代碼。如果最左面的字元不是一個多位元組字元。返回與ASCII()函數返回的相同值。
CONV(N,from_base,to_base)
在不同的數字基之間變換數字。返回數字N的字元串數字,從from_base基變換為to_base基,如果任何參數是NULL,返回NULL。參數N解釋為一個整數,但是可以指定為一個整數或一個字元串。最小基是2且最大的基是36。如果to_base是一個負數,N被認為是一個有符號數,否則,N被當作無符號數。 CONV以64位點精度工作。
BIN(N)
返回二進制值N的一個字元串表示,在此N是一個長整數(BIGINT)數字,這等價於CONV(N,10,2)。如果N是NULL,返回NULL。
OCT(N)
返回八進制值N的一個字元串的表示,在此N是一個長整型數字,這等價於CONV(N,10,8)。如果N是NULL,返回NULL。
HEX(N)
返回十六進制值N一個字元串的表示,在此N是一個長整型(BIGINT)數字,這等價於CONV(N,10,16)。如果N是NULL,返回NULL。
CHAR(N,...)
CHAR()將參數解釋為整數並且返回由這些整數的ASCII代碼字元組成的一個字元串。NULL值被跳過。
CONCAT(str1,str2,...)
返回來自於參數連結的字元串。如果任何參數是NULL,返回NULL。可以有超過2個的參數。一個數字參數被變換為等價的字元串形式。
LENGTH(str)
OCTET_LENGTH(str)
CHAR_LENGTH(str)
CHARACTER_LENGTH(str)
返回字元串str的長度。
LOCATE(substr,str)
POSITION(substr IN str)
返回子串substr在字元串str第一個出現的位置,如果substr不是在str裡面,返回0.
LOCATE(substr,str,pos)
返回子串substr在字元串str第一個出現的位置,從位置pos開始。如果substr不是在str裡面,返回0。
INSTR(str,substr)
返回子串substr在字元串str中的第一個出現的位置。這與有2個參數形式的LOCATE()相同,除了參數被顛倒。
LPAD(str,len,padstr)
返回字元串str,左面用字元串padstr填補直到str是len個字元長。
RPAD(str,len,padstr)
返回字元串str,右面用字元串padstr填補直到str是len個字元長。
LEFT(str,len)
返回字元串str的最左面len個字元。
RIGHT(str,len)
返回字元串str的最右面len個字元。
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
從字元串str返回一個len個字元的子串,從位置pos開始。使用FROM的變種形式是ANSI SQL92語法。
SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
從字元串str的起始位置pos返回一個子串。
SUBSTRING_INDEX(str,delim,count)
返回從字元串str的第count個出現的分隔符delim之後的子串。如果count是正數,返回最後的分隔符到左邊(從左邊數) 的所有字元。如果count是負數,返回最後的分隔符到右邊的所有字元(從右邊數)。
LTRIM(str)
返回刪除了其前置空格字元的字元串str。
RTRIM(str)
返回刪除了其拖後空格字元的字元串str。
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
返回字元串str,其所有remstr前綴或後綴被刪除了。如果沒有修飾符BOTH、LEADING或TRAILING給出,BOTH被假定。如果remstr沒被指定,空格被刪除。
SOUNDEX(str)
返回str的一個同音字元串。聽起來「大致相同」的2個字元串應該有相同的同音字元串。一個「標准」的同音字元串長是4個字元,但是SOUNDEX()函數返回一個任意長的字元串。你可以在結果上使用SUBSTRING()得到一個「標准」的 同音串。所有非數字字母字元在給定的字元串中被忽略。所有在A-Z之外的字元國際字母被當作母音。
SPACE(N)
返回由N個空格字元組成的一個字元串。
REPLACE(str,from_str,to_str)
返回字元串str,其字元串from_str的所有出現由字元串to_str代替。
REPEAT(str,count)
返回由重復countTimes次的字元串str組成的一個字元串。如果count <= 0,返回一個空字元串。如果str或count是NULL,返回NULL。
REVERSE(str)
返回顛倒字元順序的字元串str。
INSERT(str,pos,len,newstr)
返回字元串str,在位置pos起始的子串且len個字元長得子串由字元串newstr代替。
ELT(N,str1,str2,str3,...)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小於1或大於參數個數,返回NULL。ELT()是FIELD()反運算。
FIELD(str,str1,str2,str3,...)
返回str在str1, str2, str3, ...清單的索引。如果str沒找到,返回0。FIELD()是ELT()反運算。
FIND_IN_SET(str,strlist)
如果字元串str在由N子串組成的表strlist之中,返回一個1到N的值。一個字元串表是被「,」分隔的子串組成的一個字元串。如果第一個參數是一個常數字元串並且第二個參數是一種類型為SET的列,FIND_IN_SET()函數被優化而使用位運算!如果str不是在strlist裡面或如果strlist是空字元串,返回0。如果任何一個參數是NULL,返回NULL。如果第一個參數包含一個「,」,該函數將工作不正常。
MAKE_SET(bits,str1,str2,...)
返回一個集合 (包含由「,」字元分隔的子串組成的一個字元串),由相應的位在bits集合中的的字元串組成。str1對應於位0,str2對應位1,等等。在str1, str2, ...中的NULL串不添加到結果中。

EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
返回一個字元串,在這里對於在「bits」中設定每一位,你得到一個「on」字元串,並且對於每個復位(reset)的位,你得到一個「off」字元串。每個字元串用「separator」分隔(預設「,」),並且只有「bits」的「number_of_bits」 (預設64)位被使用。

LCASE(str)
LOWER(str)
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成小寫。該函數對多位元組是可靠的。
UCASE(str)
UPPER(str)
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成大寫。該函數對多位元組是可靠的。
LOAD_FILE(file_name)
讀入文件並且作為一個字元串返迴文件內容。文件必須在伺服器上,你必須指定到文件的完整路徑名,而且你必須有file許可權。文件必須所有內容都是可讀的並且小於max_allowed_packet。如果文件不存在或由於上面原因之一不能被讀出,函數返回NULL。
另外,MySQL必要時自動變換數字為字元串,並且反過來也如此:
mysql> SELECT 1+"1";
-> 2
mysql> SELECT CONCAT(2,' test');
-> '2 test'
如果你想要明確地變換一個數字到一個字元串,把它作為參數傳遞到CONCAT()。
如果字元串函數提供一個二進制字元串作為參數,結果字元串也是一個二進制字元串。被變換到一個字元串的數字被當作是一個二進制字元串。這僅影響比較。
終於打完了,樓主如果還需要其他解釋請提出來

③ 怎樣在PHP中把16進制HEX數據轉換為2進制數據呢

十六進制轉為二進制有兩種理解方法,第一是十六進制字元串轉二進制字元串,第二是十六進制數轉二進制數,下面分別介紹2種轉換方法:

1.hex2bin函數可以將十六進制字元串轉換為二進制字元串,詳細用法如下:

hex2bin — 轉換十六進制字元串為二進制字元串

stringhex2bin(string$data)

轉換十六進制字元串為二進制字元串。

參數:

data:十六進製表示的數據

返回值:

返回給定數據的二進製表示 或者在失敗時返回 FALSE。

異常:

如果輸入的十六進制字元串是奇數長數或者無效的十六進制字元串將會拋出E_WARNING 級別的錯誤。

示例:

$hex=hex2bin("");
echo$hex;//examplehexdata(其中16進制代表的是ascii碼)

2.base_convert是真正意義上的進制轉換函數

base_convert — 在任意進制之間轉換數字

stringbase_convert(string$number,int$frombase,int$tobase)

返回一字元串,包含 number以 tobase 進制的表示。number 本身的進制由frombase指定。frombase 和 tobase 都只能在2 和 36 之間(包括 2 和 36)。高於十進制的數字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。

參數:

number:要轉換的數字

frombase:原始進制

tobase:轉換後的進制

示例:

$hexadecimal='A37334';
echobase_convert($hexadecimal,16,2);//101000110111001100110100

④ php將圖片文件轉換成二進制輸出的方法

本文實例講述了php將圖片文件轉換成二進制輸出的方法。分享給大家供大家參考。具譽羨卜體實現方法如下:
header(
"Content-type:
image/jpeg");
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
"r"),
$PSize);
echo
$picturedata;
就這么簡單4行代碼,就將圖片以二進制流的形慶穗式輸出到客戶端了,和打開一張圖片沒有任何區別。
這里需要注意的是,發送的header要根據具體情派殲況而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同類型的圖片輸出不同的頭部。
希望本文所述對大家的php程序設計有所幫助。

⑤ 在PHP中,字母a和字母A的二進制,八進制,十進制,十六進制的寫法是什麼

字母"a":

二進制:1100001

八進制:141

十進制:97

十六進制:61

你可以通過以下代碼來查看:

<?php
$num=ord('a');
//二進制
echodecbin($num),',';
//八進制
echodecoct($num),',';
//十進制
echo$num,',';
//十六進制
echodechex($num),',';

⑥ 求教PHP二進制產生隨機數過程中出現的問題

具體步驟如下:
1、隨機生成0-65535范圍內十進制整數,並轉換為二進制字元串;
2、用str_shuffle()函數將二進制字元串變成新的二進制字元串;
3、將新的二進制字元串轉換為十進制的整數,然後將兩個十進制數進行異或運算,得到新的十進制整數;
4,除以65535,轉換成0-1之間的小數;
經過for循環統計,隨機效果很不理想,表現為0-0.1區間比較密集,柱狀圖顯示成遞減分布。

⑦ php 如何進行二進制和十六進制文件操作

2進制文件流操作

⑧ 批處理 php 二進制進位演算法

//演算法分析:我們想要實現的是數字相加,每位數的最大值為4,超過4進1位,即5進制。
//如果,數字的最後一位不等於4,那麼直接相加並輸出;如果最後一位是4,將這一位置1,並且進位1
//進位的1必須跟前面的數字進行相加,這就形成了一個遞歸,遞歸的條件是最後一位等於4
//為了跟前面的數字進行相加,我們必須先對原數字進行截取,比如數字1114,進位後應該得到1121
//代碼是這樣處理的:先把4置1,然後截取111,遞歸過程中執行111+1=112,然後返回112,並更上一次遞歸中得到的和的最後一位
//拼接成一個新的字元串:1121

⑨ php中能輸出二進制數據么

可以的。
可以用一個十進制二進制的函數decbin(),生成的是一個字元串,直接輸出即可

⑩ php接收二進制文件怎麼替換裡面的內容

php接收二進制文件怎麼替換裡面的內容
php接收二進制文件如下:
<?php
header('Content-type: text/html; charset=utf-8');
error_reporting(0);
$filename = $_GET["filename"];
$filesize = $_GET["filesize"];

$xmlstr = $GLOBALS[HTTP_RAW_POST_DATA];//$_POST["data"];//
if(empty($xmlstr)) $xmlstr = file_get_contents('php://input');

$raw = $xmlstr;//得到post過來的二進制原始數據
$file = fopen("./upload/".$filename,"w");//打開文件准備寫入
fwrite($file,$raw);//寫入
fclose($file);//關閉
?>

接收的二進制文件中非標准字元(>0x7F)的位元組被替換為三個位元組,比如E2替換為EF 9F A2
現在我想在Php接收到文件之後還原回去,把EF 9F A2替換為E2,請問這個怎麼實現?

非常感謝!
PHP 二進制

------解決方案--------------------
他的數據轉換規則是這樣的:
文件頭不變,文件頭多長不清楚,圖上到0050h都一樣的
<=7F的位元組,因為utf-8也一樣,可以認為也轉換了utf-8
>=80的位元組,高位加上F7,再轉utf-8,例如E2就變成F7E2然後轉utf-8成為EF 9F A2

至少他圖中E2/FB/91/B2/81...都滿足這個規則
------解決方案--------------------
本帖最後由 xuzuning 於 2013-05-02 15:35:02 編輯
用正則可這樣寫
假定數據已把存在變數 $s 中,則
$s = preg_replace_callback('/[\xef]../', 'foo', $s);

function foo($r) {

$c = (ord($r[0]{1}) & 0x03) << 6;

$c += (ord($r[0]{2}) & 0x3f);

return chr($c);

}

閱讀全文

與php二進制操作相關的資料

熱點內容
單片機的反向編譯 瀏覽:463
subsample演算法 瀏覽:897
蘋果免費看書app哪個最好 瀏覽:885
c語言加密怎麼弄 瀏覽:840
c語言編譯的錯誤提示 瀏覽:765
驗機蘋果app哪個最好 瀏覽:666
光遇國際服安卓如何購買禮包 瀏覽:55
163app怎麼下載 瀏覽:245
電腦程序員下場 瀏覽:45
編譯原理ll1文法判斷 瀏覽:727
qt用vs2015編譯 瀏覽:551
結婚日子最好的演算法 瀏覽:794
安卓怎麼把數據傳到蘋果里 瀏覽:502
編譯器標識 瀏覽:790
編程珠璣第三章 瀏覽:785
windows如何開啟tftp伺服器 瀏覽:110
歐姆龍plc編程指令表 瀏覽:189
程序員遠程收入不穩定 瀏覽:861
演算法原理怎麼寫 瀏覽:470
有個動漫女主藍頭發是程序員 瀏覽:1001