|
|
|
| Нужен скрипт или хотя бы формула.
Т.е. сам принцип преобразования понятен:
0: 00000000
1: 00000001
2: 00000010
3: 00000011
4: 00000100
5: 00000101
6: 00000110
7: 00000111
8: 00001000
|
Ну и так далее до 255.
Но вот составить алгоритм получения результата у меня не получается. Может кто поможет?
Спасибо. | |
|
|
|
|
|
|
|
для: coloboc66
(01.05.2015 в 09:19)
| |
<?
for($num = 0 ; $num < 255; ++$num)
{
$d = $num; $s = '';
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
$s = ($d&1) . $s; $d >>= 1;
echo $num . " : " . s . "<br />\r\n";
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(01.05.2015 в 11:11)
| | Хмм...
Здесь мы получим полную таблицу кодов, так?
А если надо ввести в поле любое обычное число до 255, а в другом поле получить результат его преобразования в восьмиразрядное? | |
|
|
|
|
|
|
|
для: coloboc66
(01.05.2015 в 11:55)
| | >Хмм...
>Здесь мы получим полную таблицу кодов, так?
>А если надо ввести в поле любое обычное число до 255, а в другом поле получить результат его преобразования в восьмиразрядное?
тогда вместо строчки for(...)
просто присвойте $num число из поля. Остальной текст неизменен. | |
|
|
|
|
|
|
|
для: Trianon
(01.05.2015 в 21:18)
| | Гыы...
Круто!
А если нужно произвести обратную операцию, т.е. из восьмиразрядного числа получить обычное? | |
|
|
|
|
|
|
|
для: coloboc66
(02.05.2015 в 11:49)
| |
$str= '10010111';
$a = str_split($s);
$n = 0;
foreach($a as $d) { $n <<= 1; $n += $d; }
echo $n;
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.05.2015 в 12:39)
| | Тут нет ошибки?
Может надо:
? | |
|
|
|
|
|
|
|
для: coloboc66
(02.05.2015 в 13:23)
| | конечно. | |
|
|
|
|
|
|
|
для: coloboc66
(01.05.2015 в 09:19)
| |
<?
$n = -1;
while($n++ < 10) {
echo $n .'. '. decbin($n) . '<br>';
}
|
Добавить нули слева если надо думаю не проблема? | |
|
|
|
|
|
|
|
для: confirm
(01.05.2015 в 20:51)
| | А на java script? | |
|
|
|
|
|
|
|
для: coloboc66
(02.05.2015 в 11:50)
| |
var n = -1, s = '';
while(n++ < 10) {
s += n + '. ' + n.toString(2) + '<br>';
}
document.write(s)
|
PS. Если с ведущими нулями в начале, то, чтобы без вопросов:
var n = -1, b, s = '';
while(n++ < 255) {
b = n.toString(2);
s += n + '. ' + new Array(8 - b.length).join('0') + b + '<br>';
}
document.write(s)
|
| |
|
|
|
|
|
|
|
для: confirm
(02.05.2015 в 19:00)
| | Спасибо, други! Вот если бы вы ещё и математическую формулу нарисовали - цены бы вам не было... | |
|
|
|
|
|
|
|
для: coloboc66
(02.05.2015 в 21:03)
| | Какую формулу? Преобразование целого числа с основанием 10 в основание 2, это деление каждого частного на 2 и записи остатка в конец двоичной записи. Деление продолжается до тех пор, пока в частном не будет 0. Результат записываем справа налево. А в сети подробности об этом не трудно найти. | |
|
|
|