У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 1.1

Работа добавлена на сайт samzan.net: 2016-03-05

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.4.2025

1.   Лабораторная работа №1.

«Преобразование целых десятичных чисел в двоичный вид».

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

 

1.1                    Задание на лабораторную работу.

 

С клавиатуры вводится целое число. Необходимо вывести его двоичное представление на экран.

Программа должна поддерживать все целочисленные типы данных языка реализации (char, int, long int, unsigned int, unsigned long int для языка C/C++, integer, byte, word, shorting, longint для Pascal/Delphi).

Отрицательные числа выводятся в дополнительном коде.

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

Замечания:

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

Пример: -5:   5 = 00000101, -5 = not(5)+1 = 11111010+1 = 11111011

2.     Запрещается использовать для машинно-зависимые методы и библиотеки языков программирования.

1.     В качестве одного из вариантов решения предлагается следующие алгоритм на псевдоязыке:

 

program Translate1;

s : string;

begin

enter(a);

s:=’’;

while a<>0 do

  if  (abs(a) mod 2) then s:=’1’+s else s:=’0’+s;

  a:=abs(a) div 2;

end while;

if a<0 then

 mind:=0;

 for i:=1 to 8 do

   k:=val(s[8-i+1])+1+mind;

   s[8-i+1]:=k;

   if k=2 then begin

     s[8-i+1]:=’0’; mind:=1;

   endif  

   if k=3 then begin

     s[8-i+1]:=’1’; mind:=1;

   endif  

 endfor

 endif

end;

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

 

program Translate1;

s : string;

begin

enter(a);

s:=’’;

while a<>0 do

  if  (abs(a) shr 1) and (1 shl (sizeof(a)+1) + 1) then s:=’1’+s else s:=’0’+s;

  a:=abs(a) shr 2;

end while;

if a<0 then

 mind:=0;

 for i:=1 to 8 do

   k:=val(s[8-i+1])+1+mind;

   s[8-i+1]:=k;

   if k=2 then begin

     s[8-i+1]:=’0’; mind:=1;

   endif  

   if k=3 then begin

     s[8-i+1]:=’1’; mind:=1;

   endif  

 endfor

 endif

end;

 

где shr и sizeof  - операции сдвига вправо и определения размера типа в битах соответственно.

Задание 1. Решение.

С клавиатуры вводится целое число. Необходимо вывести его двоичное представление на экран. Ниже приведен разработанный код:

program algoritm;

uses crt ;

var s,sbox:string;

I, step, dva, n, l, delo: intger;

begin

{Алгоритм перевода}

Writeln  (‘Введите двоичное число:’);

read (dva);

s:=IntToStr(dva);      записываем двоичное число как строку

l:=length (s);          длина строки

for i:=1 to l do       делаем для каждого символа

begin

dva:=StrToInt (s [i] ); записываем текущее число

step:=l-I;   степень

if dva>0 then

begin

for n:=1to step do

dva:=dva*2;

delo:=delo+dva;     складываем

end;

end;

Writeln(‘Десятичное число:’,delo);

end.

Задание 2. Решение.

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

Разработанный код:

program algoritm;

uses crt ;

var i, ost,des,n: integer;

m: array [1..99] ofinteger;

begin

Writeln  (‘Введите двоичное число:’);

read (des);

n:=0;

i:=0;

repeat

  inc (n);                              сколько раз делим

  inc (i);                                     текущий элемент

  ost;=des mod 2;                          остаток

des:=des div 2;                            делим десятичное число

m [i]:=ost;    записываем в массив остаток (элемент двоичного числа - 0 или 1)

until des=0              делим пока не останется 0

writeln (‘Двоичное число:’);

for i:=n downto 1 do                                выводим наше двоичное число с конца

write (m[i], ‘ ’);

end.




1. Проект базы данных магазина заказов товаров и услуг
2. Тема 1 1Управление персоналом включает комплекс взаимосвязанных видов деятельности- определение потребно
3. 1 где сопротивление вольтметра диаметр проволоки
4. ФУТБОЛ ДЛЯ ФАНАТОВ Клуб болельщиков МФК Локомотив
5. Понятие логистической системы- основные категории виды [3] 2
6. Міжнародне співробітництво України в сфері стандартизації і сертифікації Важливими елементами механі
7. начала 40х годов Наметившиеся в начале 30х годов изменения в творческой направленности архитектуры созрели
8. .Економічна сутність державного кредиту його роль у формуванні додаткових фінансових ресурсів держави і по
9. ВВЕДЕНИЕ Пеpвые попытки человека осмыслить окpужающий миp живую и неживую пpиpоду космическое пpостpанс
10. троянский конь США Самый лучший раб это тот раб который даже не знает что он раб