Jump to content

underW

Newbie
  • Posts

    24
  • Joined

  • Last visited

underW's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. ну вообще то я согласен, если смотреть со стороны РНР - то это мой чистейший провал, согласен Если смотреть со стороны фундаментального программирования, без привязки к конкретному языку - то все нормально Veseloff, Вы абсолютно правы, все опирается в два варианта записи нуля. На самом деле имеем такую картину: есть у нас 1 байт - 8 бит, в этот объем мы можем запихнуть одно из 256 значений с диапазона [0-255] и это для безнаковых чисел. Для знаковых чисел мы определяем старший бит как знаковый и само число записываем в оставшиеся 7 бит, так как есть только 7 бит, значит к-во значений, которые мы можем записать ровно в 2 раза меньше от кого количества, когда мы работаем с 8 битами: 256/2=128; само число будет принадлежать диапазону [0-127]. При переходе к отрицательным числам, первое отрицательное число, на которое мы попадаем будет 1|000 0000 - то есть это (-0). Понятие отрицательного нуля (-0) так же как и положительного нуля (+0) существует в математике, но это все скорее некие абстракции и они нам не нужны smile Поэтому в ДК отрицательный ноль выбрасывается и даже не рассматривается, вместо него просто вводиться еще одно дополнительное число (-128). Вот как оно туда помещается и на выходе переменная типа byte вмещает в себя значение от (-128) до (127). Все, вопрос решен.
  2. Если посмотреть любой язык программирования, в том числе и на PHP, то в нем переменная типа byte может содержать значение из диапазона от (-128) до (127) включительно. Суть вопроса заключается в том, что как в 1байт (8 бит) впихивается число (-128)??? Если рассматривать прямой код, то в нем при 8 битах старший бит является знаковым, а остальные 7 бит отводятся для записи самого числа, при таком раскладе, максимальным положительным числом будет - 0|1111111 (127), максимальным отрицательным числом будет - 1|1111111 (-127). Становиться вполне очевидным, что при использовании прямого кода для записи чисел со знаком в 1байт можно поместить значение из диапазона (-127) до (127). Но, Архитектура х86 для записи отрицательных чисел использует так называемый дополнительный код (ДК). Получается, что при использовании именно ДК, мы можем работать с диапазоном от (-128) до (127). Самый популярный пример алгоритма перевода в ДК, который мне удалось нагуглить, заключаеться в следующем: Для перевода десятичного числа со знаком в двоичное необходимо сначала записать его в двоичном виде. Если число отрицательное, то нужно получить обратный код (1 заменить на 0 и наоборот) и прибавить единицу к полученному результату. или другими словами, более лаконично: 1. записать прямой код модуля числа; 2. инвертировать его (заменить единицы нулями, нули — единицами); 3. прибавить к инверсному коду единицу. Пример: двоичный код +11 инверсия +1 -11 ————> 0000 1011 —-> 1111 0100 —> 1111 0101 В приведенном примере дополнительным кодом числа 1011 является 11110101. Знаковый бит 1 означает, что рассматриваемое число отрицательно. Исходя из такого алгоритма, вообще становиться не понятным откуда берется ограничение на (-128): в 1 пункте сразу же сказано - записать прямой код модуля числа - в 1 байт влезет не то что модуль (-128) но и модуль (-255). Но если учесть ту особенность ДК при записи отрицательного числа, что знаковый бит всегда равен 1 и немного поэкспериментировав с ним, становится видно, что только при работе с отрицательными числами до (-128) включительно, знаковый бит равен 1, если ити дальше (-129), (-130) - то знаковый бит получаем 0, то есть мы наталкиваемся на ошибку. Неужели этим и объясняется диапазон от (-128) до (127)? А теперь гляну на еще один алгоритм определения ДК: то есть алгоритм остается тот же самый, только пример другой: Для числа -1101(-13): Прямой код 1|0001101 Обратный код 1|1110010 Дополнительный код 1|1110011 Судя из этого примера, ДК формируется на основе обратного кода, тот в свою очередь формируется на прямом коде. Посмотрим, как у нас записан прямой код: 1|0001101 - видим, что старший бит отведен для записи знака, остальные 7 - для записи самого числа, значит мы снова наталкиваемся на диапазон от (-127) до (127) и опять не можем вместить (-128). Вот собственно вопрос остается открытым, как же влазит (-128) и 1 байт?
  3. вопрос решен. Great Rash, спасибо.
  4. ну я вот тоже думал о такой реализации, а потом решил, что должно быть по идее и более элегантное решение сейчас пойду попробую хоть это
  5. в пределах <fieldset> есть набор однотипных div все они расположены в столбик один под одним, кроме одного - который расположен справа- точнее в верхнем правом углу, это за счет установки свойства float:right; все чудненько, а теперь вот необходимо под этим дивом установить еще один такой же, как я не мудровал с float, clear, ничего не получилось, они размещаются друг возле друга, а не один над другим, подскажите, пожалуйста, как сделать правильно.
  6. Dimitry Wolotko, что б поржать?
  7. да тут же суть в том, что нужно как можно быстрее, но и не в ущерб качеству... как то сейчас больше склоняюсь к варианту не спать всю ночь, эх!
  8. Стоит задача реализации каталога цветочного магазина. В каталоге должно содержаться описание растений упорядоченных по категориям(семейство кактусы, семейство семи цветиков). Минимальный функционал: просто отображение растений, +админка с возможностью редактирования описаний и фоток. Каталог должен быть готов на вчера. Теперь сам вопрос: может стоит просто поискать готовый простенький скрипт каталога? (поделитесь ссылкой) Или может получиться и самому за ночь какое то подобие написать?
  9. ребят, спасибо, разобрался
  10. LokiDi L0ck, уже неоднократно натыкаюсь на пример с рисованием фигур. Откуда он взят, какой первоисточник? Int, ооооо, вот, вот, вот, что то в этом плане я и хотел услышать
  11. Сейчас вот стал более глубоко вникать в ООП в PHP, так вот: Абстрактные классы и методы Абстрактные методы имеют только объявление и не имеют реализации. Класс, который содержит такие методы, должен быть обязательно объявлен как абстрактный: <? abstract class MyClass { abstract public function fn(); } ?> Это все понятно, как объявлять и что это такое, НО ну никак не могу понять, зачеееем они надо???? Вот нашел такую цитату: А зачем тогда нужны абстрактные методы и классы? А чтобы описать объект, который будет реализован, но который еще не реализован. Зачем описывать объект, который будет реализован, но еще не реализован? В чем суть абстрактного класса??? Можно объяснить на пальцах? Спасибо.
  12. underW

    мини-чат

    тоесть? не,не оно же начальство какое же тут сам
  13. underW

    мини-чат

    меня все устраивает, НО, есть человек, который дал мне задание, и который утверждает, что все-все чаты работают без автообновления, и что это вообще прошлый век... поэтому, мне надо или сделать как мне сказали, или же привести жесткие аргументы, что все делается так и так, а не наоборот.
  14. underW

    мини-чат

    я вот тоже так думаю, это же мини-чат, ну максимум 50 сообщений будет, минимум пользователей, та хоть каждые пол секунды ставить можно, висеть, грузить, тупить ничего же не будет, но вот как же быть с условием без автообновления?
  15. underW

    мини-чат

    мне поставили такую задачу: реализовать чат, но никаких автообновлений быть не должно, то есть, не должно быть такого, что через 5, 10, 30 сек. мы лезем и смотрим, что там с новыми сообщениями, как только появляется новое сообщение, оно само должно вылезть в окошке, хмм, но так же нельзя ну никааааак, да/не?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy