Remkomplekty.ru

IT Новости из мира ПК
11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Перевод в двоичную систему счисления паскаль

Уроки 42 — 45
Циклы на языке Паскаль
(§ 15. Программирование циклов)
Разработка программ c использованием цикла с предусловием

Содержание урока

Дополнительный материал к главе II (§§ 8 — 21). Программа перевода двоичного числа в десятичную систему счисления

Дополнительный материал к главе II (§§ 8 — 21)
Программа перевода двоичного числа в десятичную систему счисления

В §18 учебника для 8 класса рассказано о двоичной системе счисления, которая используется в компьютере для представления чисел и выполнения вычислений с ними. Там же описаны правила, по которым можно вручную выполнить перевод двоичных чисел в десятичную систему счисления и обратный перевод — десятичных чисел в двоичные. Рассмотрим программы на Паскале для автоматического перевода чисел из одной системы счисления в другую. Ограничимся переводом целых чисел.

Рассмотрим программу на Паскале, по которой происходит пере вод целого двоичного числа в десятичную систему.

Тип longint — длинный целый тип. Значения величин этого типа лежат в диапазоне от -2 147 483 648 до 2 147 483 647. Значит, данная программа может работать с числами, не более чем 9 -значными.

В этой программе используются две незнакомые вам операции с целыми числами. Операция div — целочисленное деление. Делимое и делитель являются целыми числами, а результат — целая часть частного. Например: 7 div 2=3. Для отбрасывания младшего разряда целого числа используется целочисленное деление на 10. Например: 1234 div 10 = 123 — отбрасывается младший разряд.

Операция mod дает остаток от целочисленного деления. Например: 7 mod 2 = 1. Для получения младшего разряда целого числа вычисляется остаток от целочисленного деления на 10. Например: 1234 mod 10 = 4 — выделяется разряд единиц.

Пример. При переводе по данной программе двоичного числа 11012 в десятичную систему на экране увидим:

Следовательно, в итоге получили: 11012=13.

Для лучшего понимания работы программы внимательно изучите приведенную далее трассировочную таблицу. Она отражает изменения значений переменных на каждом шаге выполнения алгоритма, реализованного в программе.

Следующая страница Дополнительный материал к главе II (§§ 8 — 21). Программа перевода десятичного числа в двоичную систему счисления

Перевод из десятичной системы в двоичную

Перевод числа из десятичной системы счисления в двоичную
Здравствуйте! Пытаюсь написать программу для перевода чисел из десятичной системы счисления в.

Перевод из десятичной системы счисления в двоичную(целые,дробные)
Всем доброго. Прошу помочь, нужна программа для перевода из десятичной (как целые так и дробные).

Перевод числа из десятичной системы в двоичную, методом рекурсии
Помогите перевести число из десятичной системы счисления в двоичную, рекурсией. Знаю как сделать.

Решение

Решение

Решение

Inadequate, она не поверит, что её сынуля сделает через функции

k1ry4, ну ведь это и не наши проблемы 🙂

Inadequate,
странный вопрос, стринг — строковый тип.. может выразился не так. мысли «бегут быстрее», чем я успеваю печатать, что и не удивительно.

Решение

Вы не понимаете смысл задания — надо вывести двоичное представление числа, не используя для буферного хранения ни строку, ни массив. Дополнительная сложность тут в том, что выделять двоичные цифры удобнее «с хвоста» (от младших к старшим) но выводить то надо сначала старшие цифры, и без буфера это не так просто.

Добавлено через 29 минут

Хм, действительно — подняли тему.

Но самое интересное, что что ни одна приведенная программа (окромя моей) в точности поставленную в первом сообщении задачу не решает. Слабо сообразить, почему?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

перевод натурального числа из десятичной системы счисления в двоичную
люди помагиет сейчас идти здавать а я не успеваю! помагите кто че сможет решить! .

Перевод из десятичной в двоичную систему счисления
Прошу прощения за данную тему. Конечно, есть где то похожая или такая же тема, но я зашел в.

Перевод из двоично-десятичной в двоичную систему счисления
Нужна помощь: создать подпрограмму для перевода числа из двоично-десятичной системы в двоичную.

Перевод чисел с остатком из десятичной в двоичную систему счисления
Помогите написать программу в паскале, которая переводила число с остатком из десятичной системы в.

Программирование перевода чисел из одной системы счисления в другую

Основные темы параграфа:

перевод двоичного числа в десятичную систему счисления;

перевод десятичного числа в двоичную систему счисления.

В§ 18 учебника для 8 класса рассказано о двоичной системе счисления, которая используется в компьютере для представления чисел и выполнения вычислений с ними. Там же описаны правила, по которым можно вручную выполнить перевод двоичных чисел в десятичную систему счисления и обратный перевод — десятичных чисел в двоичные. Рассмотрим программы на Паскале для автоматического перевода чисел из одной системы счисления в другую. Ограничимся переводом целых чисел.

Программа перевода двоичного числа в десятичную систему счисления

Рассмотрим программу на Паскале, по которой происходит перевод целого двоичного числа в десятичную систему.

ProgramNumbers_2_l0;

varN10,N2,k: longint;

Begin

while(N2<>0)do

Begin

N10:=N10 + (N2 mod 10)*k;

N2:=N2 div 10

end;

End.

В программе использованы следующие переменные:

N2 — целое двоичное число — исходное данное;

N10 — десятичное число — результат;

Тип longint— длинный целый тип. Значения величин этого типа лежат в диапазоне от -2147483648 до 2147483647. Значит, данная программа может работать с числами, не более чем 9-значными.

В этой программе используются две незнакомые вам операции с целыми числами. Операция div— целочисленное деление. Делимое и делитель являются целыми числами, а результат — целая часть частного. Например: 7 div2 =3. Для отбрасывания младшего разряда целого числа используется целочисленное деление на 10. Например: 1234 div10 = 123 — отбрасывается младший разряд.

Читать еще:  Код ошибки 481

Операция modдает остаток от целочисленного деления. Например: 7 mod2 = 1. Для получения младшего разряда целого числа вычисляется остаток от целочисленного деления на 10. Например: 1234 mod10 = 4 — выделяется разряд единиц.

Пример.При переводе по данной программе двоичного числа 11012 в десятичную систему на экране увидим:

Следовательно, в итоге получили: 11012=13.

Для лучшего понимания работы программы внимательно изучите приведенную далее трассировочную таблицу. Она отражает изменения значений переменных на каждом шаге выполнения алгоритма, реализованного в программе.

Программа перевода десятичного числа в двоичную систему счисления

Теперь познакомьтесь с программой перевода целого десятичного числа в двоичную систему счисления.

Program Numbers_10_2;

var N10, N2, k: longint;

Begin

Repeat

N2:=N2 + (N10 mod 2)*k;

until (N10=0);

End.

Здесь использованы те же обозначения, что и в предыдущей программе. Исходными данными являются: N10 — десятичное число. Результат получается в переменной N2 — число в системе с основанием 2.

В алгоритме используется цикл с постусловием (repeat. until). Цикл повторяется до выполнения условия: N10 = 0.

Примериспользования программы. Переведем число 25 в двоичную систему счисления. Работа программы на экране компьютера отразится следующим образом:

Следовательно, в результате получили: 25 =110012.

Для лучшего понимания работы программы рекомендуем построить трассировочную таблицу, наподобие предыдущей.

Коротко о главном

Программирование перевода 10 → 2 и 2 → 10 основано на использовании операций над целыми числами: div — целочисленное деление, mod — остаток от целочисленного деления.

Вопросы и задания

1. Введите в компьютер и отладьте программу Number S_2_l 0. Переведите с ее помощью в десятичную систему счисления следующие двоичные числа: 111110; 1111111; 100000. Проверьте правильность результатов.

2. Введите в компьютер и отладьте программу Number s_l 0_2. Переведите с ее помощью в двоичную систему счисления следующие десятичные числа: 255; 512; 1023. Проверьте правильность результатов.

Сложность алгоритмов

Основные темы параграфа:

объемная сложность алгоритма;

временная сложность алгоритма;

сложность алгоритмов перебора.

Традиционно принято оценивать степень сложности алгоритма по объему используемых им основных ресурсов компьютера: процессорного времени и оперативной памяти. В связи с этим вводятся такие понятия, как временная сложность и объемная сложность алгоритма.

Объемная сложностьсвязана с количеством данных, которые при обработке нужно хранить в оперативной памяти. Проблемы могут возникнуть при обработке больших массивов данных (числовых или символьных). Если весь объем обрабатываемой информации не помещается одновременно в оперативную память, то эти данные приходится хранить на устройствах внешней памяти (дисках) и в процессе обработки перемещать частями из внешней памяти в оперативную память и обратно. Поскольку время чтения и записи данных на устройствах внешней памяти намного больше времени обмена процессора с оперативной памятью, то в целом время выполнения программы существенно возрастает.

Временная сложностьсвязана с количеством операций, выполняемых процессором в течение работы программы. Наибольшая часть процессорного времени тратится на выполнение циклов. Поэтому оценка временной сложности производится по количеству повторений циклов. Нетрудно понять, что при обработке массива данных количество повторений циклов связано с размером массива. Например, пусть вычисляется сумма элементов массива X, состоящего изN чисел:

S:=0;fori:=ltoN doS:=S + X[i];

В теле цикла выполняется две операции: сложение и присваивание. Число повторений цикла равно N. Следовательно, суммарное число выполняемых операций равно N • 2.Значит, время выполнения всего цикла будет пропорционально N • 2: ТN • 2. В таком случае говорят, что временная сложность алгоритма зависит линейно от объема данных. Во сколько раз возрастет N, во столько же раз возрастет время выполнения программы.

Если вернуться к алгоритму поиска наибольшего и наименьшего значений массива, то в нем также имеется один цикл, хотя тело цикла содержит большее число операций. Но с увеличением размера массива (N) время выполнения программы будет также увеличиваться линейно, т. е. пропорционально N. Следовательно, временная сложность алгоритмов суммирования массива и поиска в массиве максимального (минимального) элемента одинаковая — линейная.

Теперь оценим временную сложность алгоритма сортировки массива методом пузырька. По-прежнему обозначим через N размер массива. Алгоритм содержит два вложенных цикла. Внешний цикл имеет длину N — 1. Внутренний цикл с каждым повторением изменяет свою длину по убыванию: N — 1,N — 2, N — 3, . 2, 1.Суммарное число повторений цикла можно посчитать так:

• вычислим среднюю длину внутреннего цикла:

• умножим эту величину на число повторений внешнего цикла:

Временная сложность алгоритма определяется слагаемым с наибольшей степенью: Т

N 2 . В таком случае говорят, что временная сложность алгоритма сортировки методом пузырька имеет второй порядок по объему данных, т. е. пропорциональна квадрату N. Например, если размер массива увеличить в 10 раз, то время сортировки возрастет в 100 раз.

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Читать еще:  Что значит код ошибки 50

Перевод чисел в различные системы счисления с решением

Калькулятор позволяет переводить целые и дробные числа из одной системы счисления в другую. Основание системы счисления не может быть меньше 2 и больше 36 (10 цифр и 26 латинских букв всё-таки). Длина чисел не должна превышать 30 символов. Для ввода дробных чисел используйте символ . или , . Чтобы перевести число из одной системы в другую, введите исходное число в первое поле, основание исходной системы счисления во второе и основание системы счисления, в которую нужно перевести число, в третье поле, после чего нажмите кнопку «Получить запись».

Исходное число записано в -ой системе счисления.

Хочу получить запись числа в -ой системе счисления.

Выполнено переводов: 3899420

Системы счисления

Системы счисления делятся на два типа: позиционные и не позиционные. Мы пользуемся арабской системой, она является позиционной, а есть ещё римская − она как раз не позиционная. В позиционных системах положение цифры в числе однозначно определяет значение этого числа. Это легко понять, рассмотрев на примере какого-нибудь числа.

Пример 1. Возьмём число 5921 в десятичной системе счисления. Пронумеруем число справа налево начиная с нуля:

Число 5921 можно записать в следующем виде: 5921 = 5000+900+20+1 = 5·10 3 +9·10 2 +2·10 1 +1·10 0 . Число 10 является характеристикой, определяющей систему счисления. В качестве степеней взяты значения позиции данного числа.

Пример 2. Рассмотрим вещественное десятичное число 1234.567. Пронумеруем его начиная с нулевой позиции числа от десятичной точки влево и вправо:

Число 1234.567 можно записать в следующем виде: 1234.567 = 1000+200+30+4+0.5+0.06+0.007 = 1·10 3 +2·10 2 +3·10 1 +4·10 0 +5·10 -1 +6·10 -2 +7·10 -3 .

Перевод чисел из одной системы счисления в другую

Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.

Перевод чисел из любой системы счисления в десятичную систему счисления

Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:

1. Перевести число 1001101.11012 в десятичную систему счисления.
Решение: 10011.11012 = 1·2 4 +0·2 3 +0·2 2 +1·2 1 +1·2 0 +1·2 -1 +1·2 -2 +0·2 -3 +1·2 -4 = 16+2+1+0.5+0.25+0.0625 = 19.812510
Ответ: 10011.11012 = 19.812510

2. Перевести число E8F.2D16 в десятичную систему счисления.
Решение: E8F.2D16 = 14·16 2 +8·16 1 +15·16 0 +2·16 -1 +13·16 -2 = 3584+128+15+0.125+0.05078125 = 3727.1757812510
Ответ: E8F.2D16 = 3727.1757812510

Перевод чисел из десятичной системы счисления в другую систему счисления

Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.

Перевод целой части числа из десятичной системы счисления в другую систему счисления

Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.

3. Перевести число 27310 в восьмиричную систему счисления.
Решение: 273 / 8 = 34 и остаток 1, 34 / 8 = 4 и остаток 2, 4 меньше 8, поэтому вычисления завершены. Запись из остатков будет иметь следующий вид: 421
Проверка: 4·8 2 +2·8 1 +1·8 0 = 256+16+1 = 273 = 273 , результат совпал. Значит перевод выполнен правильно.
Ответ: 27310 = 4218

Рассмотрим перевод правильных десятичных дробей в различные системы счисления.

Перевод дробной части числа из десятичной системы счисления в другую систему счисления

Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.

4. Перевести число 0.12510 в двоичную систему счисления.
Решение: 0.125·2 = 0.25 (0 — целая часть, которая станет первой цифрой результата), 0.25·2 = 0.5 (0 — вторая цифра результата), 0.5·2 = 1.0 (1 — третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).
Ответ: 0.12510 = 0.0012

Перевод в двоичную систему счисления паскаль

Правила перевода целых чисел
Результатом является целое число.
1. Из десятичной системы счисления — в двоичную и шестнадцатеричную:

  1. исходное целое число делится на основание системы счисления, в которую переводится (2 или 16); получается частное и остаток;
  2. если полученное частное не делится на основание системы счисления так, чтобы образовалась целая часть, отличная от нуля, процесс умножения прекращается, переходят к шагу в). Иначе над частным выполняют действия, описанные в шаге а);
  3. все полученные остатки и последнее частное преобразуются в соответствии с таблицей в цифры той системы счисления, в которую выполняется перевод;
  4. формируется результирующее число: его старший разряд — полученное последнее частное, каждый последующий младший разряд образуется из полученных остатков от деления, начиная с последнего и кончая первым. Таким образом, младший разряд полученного числа — первый остаток от деления, а старший — последнее частное.

Пример 3.1. Выполнить перевод числа 19 в двоичную систему счисления:

Пример 3.2. Выполнить перевод числа 19 в шестнадцатеричную систему счисления:

Читать еще:  Fallout 4 ошибка при распаковке

Пример 3.3. Выполнить перевод числа 123 в шестнадцатеричную систему счисления:

2. Из двоичной и шестнадцатеричной систем счисления — в десятичную. В этом случае рассчитывается полное значение числа по формуле.

Пример 3.4. Выполнить перевод числа 1316 в десятичную систему счисления. Имеем:
1316 = 1*16 1 + 3*16 0 = 16 + 3 = 19.
Таким образом, 1316 = 19.

Пример 3.5. Выполнить перевод числа 100112 в десятичную систему счисления. Имеем:
100112 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16+0+0+2+1 = 19.
Таким образом, 100112 = 19.

3. Из двоичной системы счисления в шестнадцатеричную:

  1. исходное число разбивается на тетрады (т.е. 4 цифры), начиная с младших разрядов. Если количество цифр исходного двоичного числа не кратно 4, оно дополняется слева незначащими нулями до достижения кратности 4;
  2. каждая тетрада заменятся соответствующей шестнадцатеричной цифрой в соответствии с таблицей

Пример 3.6. Выполнить перевод числа 100112 в шестнадцатеричную систему счисления.
Поскольку в исходном двоичном числе количество цифр не кратно 4, дополняем его слева незначащими нулями до достижения кратности 4 числа цифр. Имеем:

4. Из шестнадцатеричной системы счисления в двоичную:

  1. каждая цифра исходного числа заменяется тетрадой двоичных цифр в соответствии с таблицей. Если в таблице двоичное число имеет менее 4 цифр, оно дополняется слева незначащими нулями до тетрады;
  2. незначащие нули в результирующем числе отбрасываются.

Пример 3.7. Выполнить перевод числа 1316 в двоичную систему счисления.
По таблице имеем: 116 = 12 и после дополнения незначащими нулями 12 = 00012; 316 = 112 и после дополнения незначащими нулями 112 = 00112. Тогда 1316 = 000100112. После удаления незначащих нулей имеем 1316 = 100112.


  1. исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);
  2. в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается — она является старшей цифрой получаемой дроби;
  3. оставшаяся дробная часть вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б).
  4. процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;
  5. формируется результат: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.

Пример 3.8. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.
Имеем:

В данном примере процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.
Таким образом, 0,847 = 0,11012.

Пример 3.9. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.

В данном примере также процедура перевода прервана. Таким образом, 0,847 = 0,D8D2.

2. Из двоичной и шестнадцатеричной систем счисления — в десятичную. В этом случае рассчитывается полное значение числа по формуле, причем коэффициенты ai принимают десятичное значение в соответствии с таблицей.

Пример 3.10. Выполнить перевод из двоичной системы счисления в десятичную числа 0,11012. Имеем:
0,11012 = 1*2 -1 + 1*2 -2 + 0*2 -3 +1*2 -4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.
Расхождение полученного результата с исходным для получения двоичной дроби числом вызвано тем, что процедура перевода в двоичную дробь была прервана.
Таким образом, 0,11012 = 0,8125.

Пример 3.11. Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D16. Имеем:
0,D8D16 = 13*16 -1 + 8*16 -2 + 13*16 -3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.
Расхождение полученного результата с исходным для получения двоичной дроби числом вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.
Таким образом, 0,D8D16 = 0,84692.

3. Из двоичной системы счисления в шестнадцатеричную:

  1. исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;
  2. каждая тетрада заменяется шестнадцатеричной цифрой в соответствии с таблицей.

Пример 3.12. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,11012. Имеем:
0,11012 = 0,11012 В соответствии с таблицей 11012 = D16. Тогда имеем 0,11012 = 0,D16.

Пример 3.13. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012.
Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль: 0,00101012 = 0,001010102. В соответствии с таблицей 00102 = 102 = 216 и 10102 = A16. Тогда имеем 0,00101012 = 0,2A16.

4. Из шестнадцатеричной системы счисления в двоичную:

  1. каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с таблицей;
  2. незначащие нули отбрасываются.

Пример 3.14. Выполнить перевод из шестнадцатеричной системы счисления в двоичную числа 0,2А16.
По таблице имеем 216 = 00102 и А16 = 10102. Тогда 0,2А16 = 0,001010102.
Отбросим в результате незначащий ноль и получим окончательный результат: 0,2А16 = 0,00101012.

Правило перевода дробных чисел
Отдельно переводится целая часть числа, отдельно — дробная. Результаты складываются.

Пример 3.15. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.
Представим исходное число как сумму целого числа и правильной дроби:
19,847 = 19 + 0,847.
Как следует из примера 3.2, 19 = 1316; а в соответствии с примером 3.9 0,847 = 0,D8D16. Тогда имеем:
19 + 0,847 = 1316 + 0,D8D16 = 13,D8D16.
Таким образом, 19,847 = 13,D8D16.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×