ProGrammer
Сайт о программировании, математике и моделировании
Сайт о программировании, математике и моделировании
3 Декабрь
Складывать и вычитать учат с первого класса школы. И в отличие от умножения ничего более эффективного, чем “первоклассный” школьный алгоритм “в столбик” и не надо придумывать.. Итак, ниже приведен алгоритм вычисления суммы С =А + В чисел А и В длины n цифр. При этом помимо n – значного результата С возвращается также бит переноса из старших разрядов d. Читать дальше >
3 Декабрь
Прежде всего, введем обозначение. Обозначим через m длину в байтах машинного слова, которое используется в качестве минимального элемента памяти. Конкретный выбор зависит от того, какой максимальный длинны элемент данных можно умножать без потери разрядов. Для процессоров Intel начиная с модели 80386 – m=32. Для процессора Digital Alpha можно использовать m=64. Читать дальше >
3 Декабрь
Для представления чисел в компьютере имеются стандартные типы данных. Однако возникает вопрос: что делать, если число очень большое и не помещается в рамки ни одного из существующих типов данных? Вот в этом случае как раз и используется «длинная» арифметика, суть которой заключается в представлении таких чисел в виде массива и проведении соответствующих арифметических операций над ними уже в преобразованном состоянии.
В настоящее время работа с длинными числами осуществляется во многих областях. Ярким примером может послужить криптография, где вся секретная часть спрятана не в знании кода алгоритма, а в наличии ключа, длинного случайного числа, подданного на «вход» алгоритма вместе с защищаемыми данными. И чем длиннее этот ключ, тем надежнее шифрование. Не вдаваясь в подробности отметим, что минимально разумной длиной ключа на данный момент считается 128 бит. Читать дальше >
3 Декабрь
Команды языка ассемблера один в один соответствуют командам процессора и фактически, представляют собой удобную символьную форму записи команд и аргументов. Также, язык ассемблера обеспечивает связывание частей программы и данныx через метки, выполняемое при ассемблировании (для каждой метки высчитывается адрес, после чего каждое вхождение метки заменяется на этот адрес). Поскольку системы команд микропроцессоров различаются, каждый процессор имеет свой набор команд на языке ассемблера и свои ассемблеры. Читать дальше >
3 Декабрь
Ассемблер (от англ. assemble — собирать) — компилятор с языка ассемблера в команды машинного языка. Русифицированное название — мнемокод. Предназначен для представления в удобном (мнемоническом) виде машинные коды команд. Обеспечивает наиболее эффективное использование ресурсов системы (процессор, память, периферия). Используется в «узких» местах — требуется большое быстродействие, ограничение по размеру оперативной памяти и другие. Ассемблером также называют иногда саму систему команд центрального процессора. Читать дальше >
3 Декабрь
Известно, что арифметические действия, выполняемые компьютером в ограниченном числе разрядов, не всегда позволяют получить точный результат. Более того, мы ограничены размером (величиной) чисел, с которыми можем работать, так как для представления чисел в компьютере используются стандартные типы данных. Поэтому в некоторых случаях мы сами должны позаботиться о представлении чисел в машине и о точном выполнении арифметических операций над ними.
Числа, для представления которых в стандартных компьютерных типах данных не хватает количества двоичных разрядов, называются «длинными». Реализация арифметических операций над такими «длинными» числами получила название «длинной арифметики». Читать дальше >
3 Декабрь
3 Декабрь
Язык ассемблера позволяет программисту пользоваться текстовыми мнемоническими (то есть легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др. Читать дальше >
3 Декабрь
Основные свойства алгоритмов следующие:
1. Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма. Читать дальше >
3 Декабрь
Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно поэтому важно в нем разобраться. Название «алгоритм» произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783—850 гг. В своей книге «Об индийском счете» он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними «столбиком», знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.
Человек ежедневно встречается с необходимостью следовать тем или иным правилам, выполнять различные инструкции и указания. Например, переходя через дорогу на перекрестке без светофора надо сначала посмотреть направо. Если машин нет, то перейти полдороги, а если машины есть, ждать, пока они пройдут, затем перейти полдороги. После этого посмотреть налево и, если машин нет, то перейти дорогу до конца, а если машины есть, ждать, пока они пройдут, а затем перейти дорогу до конца.
В математике для решения типовых задач мы используем определенные правила, описывающие последовательности действий. Например, правила сложения дробных чисел, решения квадратных уравнений и т. д. Читать дальше >