導航:首頁 > 編程語言 > php2進制轉16進制

php2進制轉16進制

發布時間:2022-07-10 01:59:35

Ⅰ 用php寫一個進制轉換的程序。增加如下圖的一個表單,用PHP函數完成。10轉2,10轉8,10轉16進制。

<?php
$frombase ='';
$tobase ='';
if($_POST){
$frombase =$_POST['frombase'];
$type =$_POST['type'];
switch($type){
case1:
$tobase=base_convert($frombase,10,2);break;
case2:
$tobase=base_convert($frombase,10,8);break;
case3:
$tobase=base_convert($frombase,10,16);break;
}
}
?>
<formaction=""method="post">
數:<inputtype="text"name="frombase"value="<?phpecho$frombase;?>"size="20"/>
<selectname="type">
<optionvalue="1">10to2</option>
<optionvalue="2">10to8</option>
<optionvalue="3">10to16</option>
</select>
<inputtype="submit"value="轉換"/>
<inputtype="text"value="<?phpecho$tobase;?>"size="20"/>
</form>

試試看是不是您想要的寫法。

Ⅱ 怎麼用php 里的bin2hex函數算出來的十六進制是「3130」之類的,比如二進制10怎麼算出來就是3130

echo bin2hex("10");
輸出3130,確實是這樣的,因為"10"是兩個字元,其ASCII代碼分別是16進制的31和30。

手冊上的內容如下:
bin2hex — 將二進制數據轉換成十六進製表示

說明
string bin2hex ( string $str )

返回 ASCII 字元串,為參數 str 的十六進製表示。轉換使用位元組方式,高四位位元組優先。

Ⅲ php中數組元素轉為16進制的問題

PHP不會。
我的思路是:將要轉換的元素做位運算,&00001111,得到低位的值,對它進行判斷,如果在0-9范圍內,結果是該值+』0『變成十六進制形式字元,若>=10且<=15,結果是該值-10+『a』或者-10+『A'; 對原數 &11110000,取出高位值,做同樣的判斷,得到高位的十六進制值。
後面連接成字元串的自己應該可以做到。

Ⅳ 2進制轉16 怎麼轉

舉個例子,比如110101轉16進制
1.向2進制數的左邊添0,直到數位可以被4整除:00110101
2.把2進制輸每4個數位分隔開來:
0011
0101
3.把每4個2進制數單獨轉成16進制數即可:
3
5
(2進制和16進制對應表在下面)
4.最後就得到110101(2進制)=35(16進制)
2進制和16進制轉換表
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
A
1011
B
1100
C
1101
D
1110
E
1111
F

Ⅳ php 如何將 16進制字元串轉為16進制字元數組 或者將 2進制字元串轉為16進制字元數組

echo ord(pack("H*", 'F'));
這個方法可以把hex轉成bin數據直接寫文件什麼的都可以了

我不確定你要的答案是什麼, 不過php中並不存在字元數組這個c的概念

至於bin轉hex, 直接用bin2hex()即可, 不過由於php沒有字元數組, 餘下的如果不是你要的, 再轉其它吧

php中字元本身就可以使用$var[x]的形式直接調用單個字元, 如果樓主想問的不是這些, 歡迎追問

Ⅵ php 16進制轉換遇到奇怪的問題

據我曾經遇到過類似問題的經驗,你需要仔細查看下SQL語句,比如:如果某個變數內容里有單引號或雙引號,那麼,$db->query($sql)就會執行有誤。

用echo "$sql"的辦法查看輸出的SQL語句是個簡單的辦法,但需要注意一點:輸出的內容是在html里,也就是說,會經過瀏覽器的編碼,你看到的並不一定是你輸出的。

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

2進制文件流操作

Ⅷ 二進制怎樣轉化為十六進制

二進制和十六進制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個C,C++程序員都能做到看見二進制數,直接就能轉換為十六進制數,反之亦然。 我們也一樣,只要學完這一小節,就能做到。 首先我們來看一個二進制數:1111,它是多少呢? 你可能還要這樣計算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。 然而,由於1111才4位,所以我們必須直接記住它每一位的權值,並且是從高位往低位記,:8、4、2、1。即,最高位的權值為2^3 = 8,然後依次是 2^2 = 4,2^1=2, 2^0 = 1。 記住8421,對於任意一個4位的二進制數,我們都可以很快算出它對應的10進制值。 下面列出四位二進制數 xxxx 所有可能的值(中間略過部分) 僅4位的2進制數 快速計算方法 十進制值 十六進值 1111 = 8 + 4 + 2 + 1 = 15 F 1110 = 8 + 4 + 2 + 0 = 14 E 1101 = 8 + 4 + 0 + 1 = 13 D 1100 = 8 + 4 + 0 + 0 = 12 C 1011 = 8 + 0 + 2+ 1 = 11 B 1010 = 8 + 0 + 2 + 0 = 10 A 1001 = 8 + 0 + 0 + 1 = 9 9 .... 0001 = 0 + 0 + 0 + 1 = 1 1 0000 = 0 + 0 + 0 + 0 = 0 0 二進制數要轉換為十六進制,就是以4位一段,分別轉換為十六進制。 如(上行為二制數,下面為對應的十六進制): 1111 1101 , 1010 0101 , 1001 1011 F D , A 5 , 9 B 反過來,當我們看到 FD時,如何迅速將它轉換為二進制數呢? 先轉換F: 看到F,我們需知道它是15(可能你還不熟悉A~F這五個數),然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。 接著轉換 D: 看到D,知道它是13,13如何用8421湊呢?應該是:8 + 4 + 1,即:1101。 所以,FD轉換為二進制數,為: 1111 1101 由於十六進制轉換成二進制相當直接,所以,我們需要將一個十進制數轉換成2進制數時,也可以先轉換成16進制,然後再轉換成2進制。 比如,十進制數 1234轉換成二制數,如果要一直除以2,直接得到2進制數,需要計算較多次數。所以我們可以先除以16,得到16進制數: 被除數 計算過程 商 余數 1234 1234/16 77 2 77 77/16 4 13 (D) 4 4/16 0 4 結果16進制為: 0x4D2 然後我們可直接寫出0x4D2的二進制形式: 0100 1101 0010。 其中對映關系為: 0100 -- 4 1101 -- D 0010 -- 2 同樣,如果一個二進制數很長,我們需要將它轉換成10進制數時,除了前面學過的方法是,我們還可以先將這個二進制轉換成16進制,然後再轉換為10進制。 下面舉例一個int類型的二進制數: 01101101 11100101 10101111 00011011 我們按四位一組轉換為16進制: 6D E5 AF 1B

Ⅸ php 怎麼讀取一個文件,保存為16進制的數字。

把文件裡面的每一個位元組的ascii碼轉成16進制就可以了,如下:

$content=file_get_contents("myfile");
$hex="";
for($i=0;$i<=strlen($content);$i++){
$asc=ord(substr($content,$i,1));
$hex.=dechex($asc);
}
file_put_contents("mynewfile",$hex);

Ⅹ 請教由二進制轉換成十六進制的方法

二進制和十六進制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個C,C++程序員都能做到看見二進制數,直接就能轉換為十六進制數,反之亦然。

我們也一樣,只要學完這一小節,就能做到。

首先我們來看一個二進制數:1111,它是多少呢?

你可能還要這樣計算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。

然而,由於1111才4位,所以我們必須直接記住它每一位的權值,並且是從高位往低位記,:8、4、2、1。即,最高位的權值為23 = 8,然後依次是 22 = 4,21=2, 20 = 1。

記住8421,對於任意一個4位的二進制數,我們都可以很快算出它對應的10進制值。

下面列出四位二進制數 xxxx 所有可能的值(中間略過部分)

僅4位的2進制數 快速計算方法 十進制值 十六進值

1111 = 8 + 4 + 2 + 1 = 15 F

1110 = 8 + 4 + 2 + 0 = 14 E

1101 = 8 + 4 + 0 + 1 = 13 D

1100 = 8 + 4 + 0 + 0 = 12 C

1011 = 8 + 4 + 0 + 1 = 11 B

1010 = 8 + 0 + 2 + 0 = 10 A

1001 = 8 + 0 + 0 + 1 = 10 9

....

0001 = 0 + 0 + 0 + 1 = 1 1

0000 = 0 + 0 + 0 + 0 = 0 0

二進制數要轉換為十六進制,就是以4位一段,分別轉換為十六進制。

如(上行為二制數,下面為對應的十六進制):

1111 1101 , 1010 0101 , 1001 1011

F D , A 5 , 9 B

反過來,當我們看到 FD時,如何迅速將它轉換為二進制數呢?

先轉換F:

看到F,我們需知道它是15(可能你還不熟悉A~F這五個數),然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。

接著轉換 D:

看到D,知道它是13,13如何用8421湊呢?應該是:8 + 2 + 1,即:1011。

所以,FD轉換為二進制數,為: 1111 1011

由於十六進制轉換成二進制相當直接,所以,我們需要將一個十進制數轉換成2進制數時,也可以先轉換成16進制,然後再轉換成2進制。

閱讀全文

與php2進制轉16進制相關的資料

熱點內容
設計道pdf 瀏覽:615
單片機kill4軟體下載收費嗎 瀏覽:846
蘋果手機怎麼連接RMS伺服器 瀏覽:603
cisco路由器基本配置命令 瀏覽:186
android狀態欄顏色透明 瀏覽:116
db2編譯工具 瀏覽:181
騰訊雲伺服器創建環境 瀏覽:567
監管資金怎麼解壓 瀏覽:671
榮耀手機內存清理文件夾 瀏覽:175
外派程序員方案 瀏覽:554
安卓怎麼把桌面的軟體變成卡通 瀏覽:885
魯班鎖解壓嗎 瀏覽:395
打包發送文件如何加密 瀏覽:213
centos解壓縮zip 瀏覽:388
我的世界怎麼用命令風塊取消指令 瀏覽:1000
安卓軟體請求超時怎麼辦 瀏覽:476
androidapp調用另一個app 瀏覽:621
數控銑床法蘭克子程序編程 瀏覽:174
linux打包命令targz 瀏覽:997
抖音app是哪個 瀏覽:407