MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Прист жж0т! о_О или WTF?

    Запланировано Прикреплена Закрыта Перенесена Архив Оффтопика
    20 Сообщения 9 Posters 443 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • TananiT Не в сети
      Tanani
      отредактировано

      ой, мя ошиблась адресом............... и след пропал, лишь пыль столбом

      1 ответ Последний ответ Ответить Цитировать 0
      • Л Не в сети
        Лиc
        отредактировано

        pashaz, двойные числа не имеют плавающей точки.. Что-то я не понял 😃 ИлиEgo74 ужё всё объяснил? О.о

        1 ответ Последний ответ Ответить Цитировать 0
        • ДримД Не в сети
          Дрим
          отредактировано

          Откуда вы такие умные?О___о

          1 ответ Последний ответ Ответить Цитировать 0
          • pashazP Не в сети
            pashaz
            отредактировано

            а это фиксированная точка 🙂 ня
            но кажется до меня дошло уже 🙂
            000 = 000 дк
            011 = 101 дк
            000+101=11(1)01 уря 😃

            но дык откуда 16777213 взялось? объясните нубу=(
            Просто переглючило?

            1 ответ Последний ответ Ответить Цитировать 0
            • AkkuchA Не в сети
              Akkuch
              отредактировано

              pashaz, нубяра =_=
              Пример:
              Берем в десятичной системе число 1. Отнимаем 3. Получаем -2.
              Теперь берем в двоичной системе: 0001, 0011.
              -2 получаем так:

              1. Берем 2: 0010
              2. Инвертируем. 1101
              3. Прибавляем 1.
              4. Получаем 1110.
              5. Смотрим: 1110 похоже очень на число 14. Но мы же знаем, что это на самом деле 1111111111111111 (...) 1110, что показывает "отрицательность" :mrgreen:

              А так как отрицательных чисел на форуме нет, то некое отрицательное число из двоичного кода перевелось в положительное десятичного :mrgreen:

              11...1110{2} = -2 {10}
              Для форума 1110 {2} = 14 {10}

              Теперь понятно? :mrgreen:

              1 ответ Последний ответ Ответить Цитировать 0
              • Л Не в сети
                Лиc
                отредактировано

                Не знаю, что у вас там с точками.. Но в двоичных числах их нету. Хотя книжка по программированию матсопроцессора на полке лежит, там есть описание)) Хоть у нас тут и извращённые три байта, я объясню на примере одного байта

                0 = 0000 0000
                1 = 0000 0001
                2 = 0000 0010
                -1 = 1111 1111 = 255 = 1 0000 0000 - 0000 0001
                -2 = 1111 1110 = 254 = 1 0000 0000 - 0000 0010

                Получается, что отрицательное двоичное число = разница вывернутого наизнанку положительного двоичного числа и единицы. Знак числа (+ и -) определяется крайним левым битом. Это сделано для удобства. Так, команда ADD (сложение двоичных чисел) не думает об этом последнем (или первом, если угодно) бите, она просто складывает числа. Пример: -1 + 2 = 255 + 2 = 1111 1111 + 0000 0010 = 1 0000 0001. Так как байт имеет всего восемь битов, то результат в нём уместиться не может, и крайний левый бит попадает во флаг cf. Этим можно отследить то, что результат выбился за пределы (255 + 2 = 257 > максимального беззнакового значения байта) Так же есть флаг of, регистрирующий переход единицы из предпоследнего разряда.. Но это вам знатьне положено 🙂

                В случае Приста у него было 0 сообщений, отняли одно (или прибавили минус одно). Но -1 по совместительству равен и 255 (или 16777215, или 0xFFFFFF, или 111111111111111111111111 в случае, если число занимает три байта, как у нас на сервере). 0 + 111111111111111111111111 = 111111111111111111111111 = -1 = 16777215 = 0xFFFFFF. Но никто не стал следить за флагами cf и of, потому что число сообщений не может быть отрицательным 🙂 И вышло, что у Приста 16777215 сообщений, потом ещё два удалили, стало 16777213..

                Что ещё не понятно?)

                З.Ы. В микропроцессоре существуют всего две команды, которые учитывают крайний левы бит, или знак операнда. Это команды idiv и imul (деление и умножение чисел со знаком), которые существуют наряду с командами умножения чисел без знака div и mul

                1 ответ Последний ответ Ответить Цитировать 0
                • 3atoi4i3 Не в сети
                  3atoi4i
                  отредактировано

                  пхпББ весь дырявый как решето :evil:
                  Лиc, у меня препод по информатике в таком стиле излагал. Ничерта не понять, только путаешься еще больше 😄

                  1 ответ Последний ответ Ответить Цитировать 0
                  • Л Не в сети
                    Лиc
                    отредактировано

                    3atoi4i, ну не объяснять же мне самые основы?) Попытайтесь использовать мозг)

                    1 ответ Последний ответ Ответить Цитировать 0
                    • 3atoi4i3 Не в сети
                      3atoi4i
                      отредактировано

                      Хорошо 😄

                      1 ответ Последний ответ Ответить Цитировать 0
                      • pashazP Не в сети
                        pashaz
                        отредактировано

                        Вообщем ясно, не надо было над оффтопом извращаться 😃
                        А нельзя поставить счетчик на оффтоп отдельный. А на экран выводить Число сообщений = Число всех - Число из оффтопа ???
                        Или это сложно реализовать ???

                        1 ответ Последний ответ Ответить Цитировать 0
                        • Первое сообщение
                          Последнее сообщение