我有一个可变长度的字符串位数组,我需要否定它们。
例如。
输入array("1", "00101", "101", "0000")
输出array("0", "11010", "010", "1111")
有一种简单的方法可以做到吗?
答案 0 :(得分:0)
foreach ($values as $value) {
$negate = intval($value, 2) ^ 0x7FFFFFFF;
echo base_convert(strval($negate), 10, 2);
}
此代码将处理范围0..2 31 -1中的所有整数。由于PHP不支持无符号整数,因此2 31 -1是可在所有平台(即32位和64位)上处理的最大值。
如果您的代码保证在64位平台上运行,则可以使用最多2 63 -1的值。
答案 1 :(得分:0)
您可以使用strtr功能执行此操作:
$bites = array("1", "00101", "101", "0000");
$output = array_map(function($element){
return strtr($element, array('1', '0'));
}, $bites);
print_r($output);