我有一個可變長度的字符串位數組,我需要否定它們。php否定字符串的最佳方法
例如。
輸入array("1", "00101", "101", "0000")
輸出array("0", "11010", "010", "1111")
有沒有一種簡單的方法怎麼辦呢?
我有一個可變長度的字符串位數組,我需要否定它們。php否定字符串的最佳方法
例如。
輸入array("1", "00101", "101", "0000")
輸出array("0", "11010", "010", "1111")
有沒有一種簡單的方法怎麼辦呢?
你可以做到這一點使用strtr功能:
$bites = array("1", "00101", "101", "0000");
$output = array_map(function($element){
return strtr($element, array('1', '0'));
}, $bites);
print_r($output);
foreach ($values as $value) {
$negate = intval($value, 2)^0x7FFFFFFF;
echo base_convert(strval($negate), 10, 2);
}
該代碼將處理在範圍0..2 -1的所有整數。由於PHP不支持無符號整數,因此-1是可以在所有平臺(即32位和64位)上處理的最大值。
如果您的代碼保證在64位平臺上運行,您可以使用最大值爲2 -1的值。
你有什麼數據類型?這些是真正的比特還是字符串表示? – Mureinik 2015-02-08 18:21:43
如果只是字符串,那麼['strtr'](http://php.net/strtr)。 (呃,正確使用它,用交換字符串,而不是數組參數。) – mario 2015-02-08 18:21:47
請你考慮輸入的實際格式提供一些代碼嗎?即G。 '$ bits = array(「1」,「00101」);' – 2015-02-08 18:22:02