101010 в двоичной и 5F в 16-чной. Остальные в 8 битов не влезут.
C++14
#include <iostream>
#define k 20
using namespace std;
int main() {
int arr[k];
bool flag = false;
for(int i = 0, l = 1; i < k; ++i){
arr[i] = l*((!flag)?13:17);
if(flag) l++;
flag = !flag;
if(arr[i] >= 300)
cout << arr[i] << " ";
else
--i;
}
return 0;
}
Преобразование числа из прямого кода в дополнительный осуществляется так:
Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;
Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.
1) Записываем наше число в прямом(обычном двоичном коде в 16-разрядном представлении)
-7 в десятичной = 0000000000000111 - нули у нас впереди так как сетка 16 -разрядная
2) Инвертируем все разряды числа: 1111111111111000
3) Прибавляем к этому числу 1: 1111111111111001
4) Старший знаковый разряд у нас уже равен 1 следовательно число -7 в 10-ой в дополнительном коде: 1111110100111010