1) Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака. Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1 = - 127, максимальное число = + 127 2) Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит, в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное = 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита 0000 0110 0100 0111 и записываем в шестнадцатиричном виде 0111(2) = 7(16) 0100(2) = 4(16) 0110(2) =6(16) 0000(2) = 0(16) 1607(16) = 0647(16) или без старшего не значащего нуля = 647(16) 3) для получения дополнительного кода числа, находят обратное число, или инверсию числа, для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1 105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом числа (- а) будет число а. Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2), а) находим обратное 01101001(2) ->(обратное) ->10010110(2) б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105 потому, что отрицательные числа представляются в дополнительном коде. Если для числа - 105 найти дополнительный код, то получим число 105 10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
Все решения даны в системе программирования PascalABC.NET 3.2, сборка 1382 от 06.02.2017
Если программа не работает, обновите версию!
№1 begin var a:=ReadArrInteger('Вводите числа:',ReadInteger('n=')); var im:=a.IndexMax; Writeln('Максимальный элемент номер ',im+1,' равен ',a[im]) end.
Пример n= 6 Вводите числа: 13 8 -15 0 16 -24 Максимальный элемент номер 5 равен 16
№2 begin var a:=ReadArrInteger('Вводите числа:',ReadInteger('n=')); Sort(a,(x,y)->x>y); a.Println end.
Пример n= 5 Вводите числа: 5 -4 6 0 5 6 5 5 0 -4
№3 begin var a:=ArrRandom(ReadInteger('n='),-54,33); a.Println; Sort(a,(x,y)->x>y); a.Println end.
= - 127, максимальное число = + 127
2) Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит, в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000 0110 0100 0111 и записываем в шестнадцатиричном виде
0111(2) = 7(16) 0100(2) = 4(16) 0110(2) =6(16) 0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а) будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное 01101001(2) ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
PascalABC.NET 3.2, сборка 1382 от 06.02.2017
Если программа не работает, обновите версию!
№1
begin
var a:=ReadArrInteger('Вводите числа:',ReadInteger('n='));
var im:=a.IndexMax;
Writeln('Максимальный элемент номер ',im+1,' равен ',a[im])
end.
Пример
n= 6
Вводите числа: 13 8 -15 0 16 -24
Максимальный элемент номер 5 равен 16
№2
begin
var a:=ReadArrInteger('Вводите числа:',ReadInteger('n='));
Sort(a,(x,y)->x>y);
a.Println
end.
Пример
n= 5
Вводите числа: 5 -4 6 0 5
6 5 5 0 -4
№3
begin
var a:=ArrRandom(ReadInteger('n='),-54,33); a.Println;
Sort(a,(x,y)->x>y); a.Println
end.
Пример
n= 14
-2 2 -10 17 18 -3 24 -30 -42 12 -11 -53 13 21
24 21 18 17 13 12 2 -2 -3 -10 -11 -30 -42 -53
№4
begin
var a:=ReadArrInteger('Вводите числа:',ReadInteger('n='));
var b:=a.Where(x->x>0); b.Println
end.
Пример
n= 14
Вводите числа: -2 2 -10 17 18 -3 24 -30 -42 12 -11 -53 13 21
2 17 18 24 12 13 21