<?php
// https://stackoverflow.com/questions/35536141/converting-binary-data-to-ascii-with-php-any-possibility/35536281#35536281
function bin2ascii($input) {
$output = '';
for($i=0; $i<strlen($input); $i+=8) {
$output .= chr(intval(substr($input, $i, 8), 2));
}
return $output;
}
https://stackoverflow.com/questions/6382738/convert-string-to-binary-then-back-again-using-php/6382880#6382880
function ascii2bin($input) {
return array_reduce(str_split($input), fn ($acc, $i) => $acc .= decbin(ord($i)));
//return array_reduce(str_split($input), fn ($acc, $i) => $acc .= str_pad(decbin(ord($i)), 8, '0', STR_PAD_LEFT));
}
$i = -114514;
var_dump( decbin($i));
var_dump( ltrim(decbin($i), $i < 0 ? '1' : '0'));
var_dump( ($i < 0 ? '1' : '0') . ltrim(decbin($i), $i < 0 ? '1' : '0'));
var_dump( bin2ascii(($i < 0 ? '1' : '0') . ltrim(decbin($i), $i < 0 ? '1' : '0')));
$o = rtrim(base64_encode(bin2ascii(($i < 0 ? '1' : '0') . ltrim(decbin($i), $i < 0 ? '1' : '0'))), '=');
var_dump($o);
$d = base64_decode($o);
var_dump($d);
$bits = ascii2bin($d);
$signBit = decbin(ord($d))[0];
$paddedBits = str_pad($bits, (strlen($bits) + (strlen($bits) % 8)) / 8, $signBit, STR_PAD_LEFT);
var_dump($bits);
var_dump($signBit);
var_dump($paddedBits);
var_dump(intval($paddedBits, 2));
preferences:
26.03 ms | 417 KiB | 5 Q