【发布时间】:2015-03-21 14:22:00
【问题描述】:
如何将整数转换为位表示形式?
例如数字 9 的位表示是:10011
例如,要将位序列转换为 int 表示,您可以这样做:
$bits_sq = array(1,0,0,1,1);
function convert_bits_to_int($bits_sq){
$sum = 0;
for($i=0; $i < count($bits_sq); $i++){
$sum = $sum + $bits_sq[$i] * pow(-2, $i);
}
print $sum; // equals to 9
}
但我想反过来。
编辑:不要误用二进制,这不是重复的,上面的线程中也没有答案
【问题讨论】:
-
你的意思是二进制吗? php.net/manual/en/function.decbin.php
-
不,我需要将它转换为它的位表示,我用一个例子编辑了我的答案。
-
您是说要将 int 转换为表示 int 值的 1 和 0 的数组吗?因此 int 9 的值(二进制为 1001)将转换为 4 个元素的数组大小,其元素为 $ar[0] == 1, $ar[1] == 0, $ar[2] == 0,并且 $ar[3] == 1?
-
位数组是什么意思?位表示是什么意思?你是说 php 中有一个特殊的类型叫做
bit?我想你对此有点困惑。我知道我不确定你想要完成什么,我怀疑其他人也是如此。如果你不能解释你想要完成什么,没有人可以帮助你。也许用一些关于你想做的事情的背景信息来修改你的问题。 -
@spreadzz,当您向某人提出问题时,他们说他们不理解您的问题,这意味着他们不清楚您的问题。如果您问的人不清楚,您不会得到高质量的答案,那么您认为您的问题可能有多清楚并不重要.祝你好运。