1. Возьмем таблицу. Глядя в нее переводим 12CD=0001001011001101 Крайние левые нули можно отбросить 12CD=1001011001101 ответ: 1001011001101₂
2. 563 переведем в двоичную форму (делят, вообще-то уголком, но тут так не напишешь, буду писать по-другому) 563=282*2+1 282=141*2+0 141=70*2+1 70=35*2+0 35=17*2+1 17=8*2+1 8=4*2+0 4=2*2+0 2=1*2+0 1=0*2+1 563₁₀=1000110101₂ Это число запишем в 16-разрядную ячейку: 0000001000110101 (тут надо квадратики нарисовать и каждую цифру в отдельном квадратике пишем, можно использовать тетрадные клеточки)
3. 62 переведем в двоичную форму 62=31*2+0 31=15*2+1 15=7*2+1 7=3*2+1 3=1*2+1 1=0*2+1 62₁₀=111110₂ Записываем его в восьмиразрядную ячейку. Поскольку нам дано было число отрицательное, то в левый крайний (старший) разряд записываем 1: 10111110 (тут надо квадратики нарисовать и каждую цифру в отдельном квадратике пишем, можно использовать тетрадные клеточки)
4. FB32 с таблицы переводим в двоичную форму FB32₁₆=1111101100110010₂ Если это записно в 16-разрядной ячейке, то старший разряд указывает на знак числа. В нашем случае число будет отрицательным. А само число равно 111101100110010₂. Переводим его в десятичную форму 111101100110010₂=1*2¹⁴+1*2¹³+1*2¹²+1*2¹¹+1*2⁹+1*2⁸+1*2⁵+1*2⁴+1*2¹= =16384+8192+4096+2048+512+256+32+16+2=31538₁₀ ответ: -31538
#include <iostream>
#include <iomanip>
using namespace std;
int** matrCreate(int n)
{
int** M;
M = new int *[n];
for (int i = 0; i < n; i++)
M[i] = new int [n];
return M;
}
void matrInit(int** M, int n)
{
srand(time(0));
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
M[i][j] = rand()%199 - 99 ;
}
void matrPrint(int** M, int n)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
cout << setw(5) << M[i][j];
cout << endl;
}
}
void matrTransform(int** M, int n)
{
int im, jm, max = -1000, s = 0;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
if (M[i][j] > max)
{
max = M[i][j];
im = i;
jm = j;
}
if (i == j)
s += M[i][j];
}
}
M[im][jm] = s;
}
void clearMem(int** M, int n)
{
for (int i = 0; i < n; i++)
{
delete [] M[i];
}
delete [] M;
}
int main()
{
int n;
cin >> n;
int **A;
A = matrCreate(n);
matrInit(A, n);
matrPrint(A, n);
cout << endl;
matrTransform(A, n);
matrPrint(A, n);
clearMem;
return 0;
}
12CD=0001001011001101 Крайние левые нули можно отбросить
12CD=1001011001101
ответ: 1001011001101₂
2. 563 переведем в двоичную форму (делят, вообще-то уголком, но тут так не напишешь, буду писать по-другому)
563=282*2+1
282=141*2+0
141=70*2+1
70=35*2+0
35=17*2+1
17=8*2+1
8=4*2+0
4=2*2+0
2=1*2+0
1=0*2+1
563₁₀=1000110101₂ Это число запишем в 16-разрядную ячейку:
0000001000110101 (тут надо квадратики нарисовать и каждую цифру в отдельном квадратике пишем, можно использовать тетрадные клеточки)
3. 62 переведем в двоичную форму
62=31*2+0
31=15*2+1
15=7*2+1
7=3*2+1
3=1*2+1
1=0*2+1
62₁₀=111110₂
Записываем его в восьмиразрядную ячейку. Поскольку нам дано было число отрицательное, то в левый крайний (старший) разряд записываем 1:
10111110 (тут надо квадратики нарисовать и каждую цифру в отдельном квадратике пишем, можно использовать тетрадные клеточки)
4. FB32 с таблицы переводим в двоичную форму
FB32₁₆=1111101100110010₂
Если это записно в 16-разрядной ячейке, то старший разряд указывает на знак числа. В нашем случае число будет отрицательным. А само число равно 111101100110010₂. Переводим его в десятичную форму
111101100110010₂=1*2¹⁴+1*2¹³+1*2¹²+1*2¹¹+1*2⁹+1*2⁸+1*2⁵+1*2⁴+1*2¹=
=16384+8192+4096+2048+512+256+32+16+2=31538₁₀
ответ: -31538