次のコードがあります。
foreach(str_split('abcd') as $char) {
$total += ($char & 1);
}
echo $total;
を出力します0
。ただし、ASCII バイナリ表現ではとが奇数であるため (97 と 99 だと思います)、2
が出力されることを期待します。a
c
に何を渡してもstr_split
、常に になるよう0
です。これはなぜですか?また、最初のビットが設定されている文字列内のバイトを正しくカウントするにはどうすればよいですか?