ИКТ. Раздел 1 Понятие информации
Скачать 57.12 Kb.
|
Раздел 5 Представление знаковых целых чисел Задача 1 Найдите дополнительный код указанного числа. Разрешается использовать калькулятор Windows в режиме «Программист» и устанавливать в нём разрядность числа. а) -11 однобайтовое знаковое число; б) -128 двухбайтовое знаковое число; в) -19 четырёхбайтовое знаковое число; г) -129 двухбайтовое знаковое число; д) -1 четырёхбайтовое знаковое число. Решение: а) Переведем -1110 в двоичную систему вот так: Целая часть числа находится делением на основание новой
Получилось:-1110 = -10112 Результат перевода: -1110 = -10112 б) Переведем -12810 в двоичную систему вот так: Целая часть числа находится делением на основание новой
Получилось:-12810 = -100000002 Результат перевода: -12810 = -100000002 в) Переведем -1910 в двоичную систему вот так: Целая часть числа находится делением на основание новой
Получилось:-1910 = -100112 Результат перевода: -1910 = -100112 г) Переведем -12910 в двоичную систему вот так: Целая часть числа находится делением на основание новой
Получилось:-12910 = -100000012 д) -110 = -12 Задача 2 Найдите десятичное число по его дополнительному коду. Разрешается использовать калькулятор Windows в режиме «Программист». Не забывайте устанавливать в нём правильную разрядность числа и правильно вводить код числа. а) 1100 б) 1111 в) 110011 г) 11001011 д) 10000001 е) 11111111 ж) 1011111101 з) 1000000000000000 и) 1000000000000001 к) 1111111111111111 л) 110010111100101111001011 м) 11001011110010111100101111001100 Решение: а) 11002 = 1∙23+1∙22+0∙21+0∙20 = 8+4+0+0 = 1210 б) 11112 = 1∙23+1∙22+1∙21+1∙20 = 8+4+2+1 = 1510 в) 1100112 = 1∙25+1∙24+0∙23+0∙22+1∙21+1∙20 = 32+16+0+0+2+1 = 5110 г) 110010112 = 1∙27+1∙26+0∙25+0∙24+1∙23+0∙22+1∙21+1∙20 = 128+64+0+0+8+0+2+1 = 20310 д) 100000012 = 1∙27+0∙26+0∙25+0∙24+0∙23+0∙22+0∙21+1∙20 = 128+0+0+0+0+0+0+1 = 12910 е) 111111112 = 1∙27+1∙26+1∙25+1∙24+1∙23+1∙22+1∙21+1∙20 = 128+64+32+16+8+4+2+1 = 25510 ж) 10111111012 = 1∙29+0∙28+1∙27+1∙26+1∙25+1∙24+1∙23+1∙22+0∙21+1∙20 = 512+0+128+64+32+16+8+4+0+1 = 76510 з) 10000000000000002 = 1∙215+0∙214+0∙213+0∙212+0∙211+0∙210+0∙29+0∙28+0∙27+0∙26+0∙25+ +0∙24+0∙23+0∙22+0∙21+0∙20 = 32768+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 3276810 и) 10000000000000012 = 1∙215+0∙214+0∙213+0∙212+0∙211+0∙210+0∙29+0∙28+0∙27+0∙26+ +0∙25+0∙24+0∙23+0∙22+0∙21+1∙20 = 32768+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1 = 3276910 к) 11111111111111112 = 1∙215+1∙214+1∙213+1∙212+1∙211+1∙210+1∙29+1∙28+1∙27+1∙26+1∙25+1∙24+1∙23+1∙22+1∙21+1∙20 = 32768+16384+8192+4096+2048+1024+512+256+128+64+32+16+8+4+2+1 = 6553510 л) 1100101111001011110010112 = 1∙223+1∙222+0∙221+0∙220+1∙219+0∙218+1∙217+1∙216+1∙215+1∙214+0∙213+0∙212+1∙211+0∙210+1∙29+1∙28+1∙27+1∙26+0∙25+0∙24+1∙23+0∙22+1∙21+1∙20= 8388608+4194304+0+0+524288+0+131072+65536+32768+16384+0+0+2048+0+512+256+128+64+0+0+8+0+2+1 = 1335597910 м) 110010111100101111001011110011002 = 1∙231+1∙230+0∙229+0∙228+1∙227+0∙226+1∙225+1∙224+1∙223+1∙222+0∙221+0∙220+1∙219+0∙218+1∙217+1∙216+1∙215+1∙214+0∙213+0∙212+1∙211+0∙210+1∙29+1∙28+1∙27+1∙26+0∙25+0∙24+1∙23+1∙22+0∙21+0∙20= 2147483648+1073741824+0+0+134217728+0+33554432+16777216+8388608+4194304+0+0+524288+0+131072+65536+32768+16384+0+0+2048+0+512+256+128+64+0+0+8+4+0+0 = 341913082810 Задача 5 Написать программу для вывода на экран в двоичном и десятичном виде максимального и минимального чисел типа long. Решение: public class Program{ public static void Main(){ long min = Int64.MinValue; for (int i=63; i>=0; i--) { Console.Write((min>>i) & 0x01); } Раздел 6 Сложение и вычитание знаковых целых чисел Задача1 Найти сумму вручную столбиком: а) 11010101 01101010 11101010 00111010 ???????? б) 11111001 11111010 11101011 01111011 ???????? в) 00111010 01001010 10001011 10111111 ???????? Решение: Задача 4 Разработать на языке C# программу для вычисления значения выражений над 4-разрядными знаковыми числами и вывести исходные данные и результат в десятичном и двоичном виде: а) 0101-1101 б) 0101+1011 в) 0111-0011 г) 1111+1000 д) 1111-0010 е) 0100+0110 ж) 0000-0010 Решение: а) 1012 - 11012 = 10002 10002 = 1∙23+0∙22+0∙21+0∙20 = 8+0+0+0 = 810 б) 1012+ 10112 = 100002 100002 = 1∙24+0∙23+0∙22+0∙21+0∙20 = 16+0+0+0+0 = 1610 в) 1112 - 112 = 1002 1002 = 1∙22+0∙21+0∙20 = 4+0+0 = 410 г) 11112 + 10002 = 101112 101112 = 1∙24+0∙23+1∙22+1∙21+1∙20 = 16+0+4+2+1 = 2310 д) 11112 - 102 =11012 11012 = 1∙23+1∙22+0∙21+1∙20 = 8+4+0+1 = 1310 е) 1002 + 110 =10102 10102 = 1∙23+0∙22+1∙21+0∙20 = 8+0+2+0 = 1010 ж) нет решений Задача 5. Подобрать такие 16-разрядные знаковые значения для чисел A и B, при которых выполняются условия: а) A-B приводит к OF=0 б) A+B приводит к OF=0 в) A-B приводит к OF=1 г) A+B приводит к OF=1 Решение: а) A-B приводит к OF=0 A=0x0001 B=0x0000 б) A+B приводит к OF=0 A=0x0001 B=0x0000 в) A-B приводит к OF=1 A=0x8000 B=0x0001 г) A+B приводит к OF=1 A=0x7FFF B=0x0001 |