有沒有可能看到變量的二進制表示?如何查看變量的二進制表示
回答
像這樣:
echo decbin(3); // 11
decbin(your_int)
將返回一個二進制數字的字符串,表示與your_int
相同的值,假設這就是您要求的。
<?php
/**
* Returns an ASCII string containing
* the binary representation of the input data .
**/
function str2bin($str, $mode=0) {
$out = false;
for($a=0; $a < strlen($str); $a++) {
$dec = ord(substr($str,$a,1));
$bin = '';
for($i=7; $i>=0; $i--) {
if ($dec >= pow(2, $i)) {
$bin .= "1";
$dec -= pow(2, $i);
} else {
$bin .= "0";
}
}
/* Default-mode */
if ($mode == 0) $out .= $bin;
/* Human-mode (easy to read) */
if ($mode == 1) $out .= $bin . " ";
/* Array-mode (easy to use) */
if ($mode == 2) $out[$a] = $bin;
}
return $out;
}
?>
用decbin()替換內部循環會更容易,或者至少使用位移而不是指數函數。 – 2011-04-18 15:46:27
是的,我也注意到了。這不是我從php網站複製的我的代碼。 – 2011-04-18 16:05:19
什麼:<?php $binary = (binary) $string; $binary = b"binary string"; ?>
(從php.net)
這不會以二進制表示形式顯示字符串,它僅將文字字符串「轉換」(或轉換)爲二進制字符串。 – 2011-04-19 09:47:38
或者你可以使用base_convert功能轉換符號代碼爲二進制,這是一個修改編輯功能:
function str2bin($str)
{
$out=false;
for($a=0; $a < strlen($str); $a++)
{
$dec = ord(substr($str,$a,1)); //determine symbol ASCII-code
$bin = sprintf('%08d', base_convert($dec, 10, 2)); //convert to binary representation and add leading zeros
$out .= $bin;
}
return $out;
}
這是轉換inet_pton()結果爲IPv6地址以二進制格式比較(因爲你不能真正轉換128位的IPv6地址爲整數,這是32位或64位的有用PHP)。 你可以找到更多關於ipv6和php here (working-with-ipv6-addresses-in-php)和here (how-to-convert-ipv6-from-binary-for-storage-in-mysql)。
另一種解決方案:
function d2b($dec, $n = 16) {
return str_pad(decbin($dec), $n, "0", STR_PAD_LEFT);
}
例子:
// example:
echo d2b(E_ALL);
echo d2b(E_ALL | E_STRICT);
echo d2b(0xAA55);
echo d2b(5);
Output:
0111011111111111
0111111111111111
1010101001010101
0000000000000101
$a = 42;
for($i = 8 * PHP_INT_SIZE - 1; $i >= 0; $i --) {
echo ($a >> $i) & 1 ? '1' : '0';
}
- 1. 二進制變量變量
- 2. 查看二進制值
- 3. 二進制表示的二進制表示
- 4. 二進制數表示在c中的一個長變量#
- 5. 獲取的變量二進制表示用C
- 6. C#二進制常量表示
- 7. 如何表示二進制透明度?
- 8. 如何用二進制表示整數
- 9. 如何表示-0二進制
- 10. 如何表示二進制t統計量?
- 11. 如何在Python中高效地表示二進制向量
- 12. 如何按二進制表示法對二進制數組進行排序
- 13. MS-SQL二進制查看器
- 14. 回聲二進制(圖像)查看
- 15. 如何查看電視中的二進制數據?
- 16. 如何查看sql二進制數據字段的內容?
- 17. 二進制表示與INET_ATON()
- 18. 二進制補碼錶示
- 19. MIPS懂二進制表示
- 20. 二進制表示樹
- 21. 二進制訪問變量二進制位 - Erlang
- 22. 如何將二進制變量的DataFrame列變成多列虛擬變量
- 23. bigint轉換爲二進制(8)列的二進制表示
- 24. 如何在Android設備上查看二進制PDF文檔
- 25. 如何以二進制格式「查看」音頻文件?
- 26. 如何顯示float或double的二進制表示形式?
- 27. 如何在C++中輸出變量的二進制值
- 28. 如何根據其他變量的條件生成二進制變量?
- 29. 如何在AMPL中分配另一變量的二進制變量
- 30. Python:檢查一個變量是二進制的
你想看看究竟是什麼?數字在base2? – vartec 2011-04-18 15:33:27