Вводим две строки с двоичным представлением, затем выводим результаты применения операции "~" к каждому числу. Задача решена, только через if else, но оператор "~" не применялся. Данный оператор применяется к целым числам. К типам данных int, short, char, можно ли его применить непосредственно к битам этих типов.
Вот код:
#include <stdio.h>
#include <stdlib.h>
#define BITS 8
char bin_inv(unsigned char *s);
int main(void){
unsigned char val_1[BITS];
unsigned char val_2[BITS];
printf("Enter binary number: ");
scanf("%s %s", val_1, val_2);
bin_inv(val_1);
bin_inv(val_2);
printf("Inverted binary number: %s %s\n", val_1, val_2);
return 0;
}
char bin_inv(unsigned char *s){
char i;
for(i = 0; i < sizeof(char) * BITS && s[i]; ++i){
if(s[i]) == '0')
s[i] = '1';
else
s[i] = '0';}
return *s;
}