Мне было интересно, есть ли простой способ отобразить 8 бит байта (или char) в PHP.Показать 8 бит байта в PHP
Например для ASCII кодирующего символ '0' должен вернуть 0011 0000
Спасибо за ваш вклад!
Мне было интересно, есть ли простой способ отобразить 8 бит байта (или char) в PHP.Показать 8 бит байта в PHP
Например для ASCII кодирующего символ '0' должен вернуть 0011 0000
Спасибо за ваш вклад!
Это должно сделать работу:
$bin = decbin(ord($char));
$bin = str_pad($bin, 8, 0, STR_PAD_LEFT);
Это работает прекрасно, именно то, что мне было нужно. Благодаря! Функция обработки всей строки, которую кто-то опубликовал и удалил, тоже был приятным. –
Рад это услышать :) Не могли бы вы пометить его как ответ, если вы считаете, что это так :) – Farkie
Мне пришлось немного подождать;) –
Вы можете использовать bitwise operators for that
$a='C';
for ($i=0; $i<8; $i++) {
var_dump((ord($a) & (1<<$i))>>$i);
}
Выход:
int(1)
int(1)
int(0)
int(0)
int(0)
int(0)
int(1)
int(0)
+1 чисто для придумывания альтернативы decbin() –
Еще одно решение, это включает в себя пространство между 4-х цифр:
$char = 0;
echo chunk_split(sprintf('%08b', ord($char)), 4, ' ');
очень хорошее решение тоже. Благодаря! –
классный и элегантный –
сочетание Ord() - для персонажей - и decbin() –
@MarkBaker decbin, DecHex для шестнадцатеричных данных ... – bwoebi
@bwoebi - уже исправлена благодаря –