Побитовый сдвиг влево - C (СИ)
Формулировка задачи:
int i = 1, j = 1, c;
if ((i != 0) && ((1 << j) != 0)) // как сделать так, чтобы при i=1 и j=1 возвращал 0, а не 1?
c = 1;
else
c =0;
printf("%d\n", c);Решение задачи: «Побитовый сдвиг влево»
textual
Листинг программы
#include "stdio.h"
#include "conio.h"
int bits(int i, int j);
int main()
{
int i, j;
printf("Enter i:");
scanf_s("%d", &i);
printf("Enter j:");
scanf_s("%d", &j);
printf("res = %d", bits(i, j));
_getch();
}
int bits(int i, int j)
{
int res;
if (i & (1 << j))
res = 1;
else
res = 0;
return res;
}