Для перевода чисел в дополнительный код, нужно: 1) перевести в двоичную систему счисления 0000 1101 13 0000 0111 7 2) инвертировать (заменить 0 на 1 и наоборот) 1111 0010 1111 1000 3) и прибавить 1 1111 0011 1111 1001 все) числа в дополнительном коде мы получили
теперь сложение: 1111 0011 1111 1001 + 1 1110 1100 мы получили переполнение и единицу в старшем разряде, это значит, сумма будет со знаком минус теперь переведем сумму в обычный код, не трогаем старший бит 1) _001 0011 инвертируем биты 2) _001 0100 прибавим 1 3) переводим в десятичную систему счисления: 20
вспоминаем, что сумма отрицательная, поэтому ответ будет: -20 ------------ для положительных чисел нужно перевести в двоичную систему Например: 2 + 3 0000 0010 - 2 0000 0011 - 3 и сложить 0000 0101 - = 2 + 4 = 6 у положительных дополнительный код совпадает с прямым кодом
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Запишите математические выражения на языке Паскаль и порядок выполнения операций
using namespace std;
int main() {
int n=12, imax=0, imin=0;
int a[n];
srand(time(NULL));
cout<<"array:"<<endl;
for (int i=0; i<n; i++)
{
a[i]=rand() % 50;
cout<<a[i]<<" ";
}
cout<<endl;
for (int i=1; i<n; i++) {
if (a[i] > a[imax]) imax = i;
if (a[i] < a[imin]) imin = i;
}
for (int i=0; i<n; i++) {
if (i == imax || i == imin) cout << " ! " << a[i] << " ! ";
else cout << a[i] << " ";
}
cout<<endl;
return 0;
}
Пример:
array:
31 0 13 29 13 34 33 42 40 26 48 24
31 ! 0 ! 13 29 13 34 33 42 40 26 ! 48 ! 24