Информатика и технология программирования


Вопросы без ответов


В первой половине заданий необходимо определить значения переменных после выполнения поразрядных операций. Учтите, что заданные маски соответствуют восьмеричным или шестнадцатеричным цифрам.


//------------------------------------------------------bk48-06.cpp


int i,j; long l; char c; double d;
// Примечание: - sizeof(int) равен 2


// - sizeof(long) равен 4


// - "~" - операция побитовой инверсии


//------------------------------------------------ 1


i = 0x5678;
l = (i &#38 ~0x00F0) | 0x0010;
c = (l &#62&#62 4) &#38 0xF + '0';
j = (i &#38 0xFF0F) | (~i &#38 0x00F0);
//------------------------------------------------ 2


i = 1; j = 2; c = 3;
l = (j &#62 i) + (j==c) &#60&#60 1 + (i !=c) &#60&#60 2;
//------------------------------------------------ 3


for (l=1,i=0; l &#62 0; l&#60&#60=1, i++);
//------------------------------------------------ 4


for (l=1,i=0; l !=0; l&#60&#60=1, i++);
//------------------------------------------------ 5


i = 1; j = 3; c = 2;
l = i + (j &#60&#60 4) + (c &#60&#60 8 );
c = i &#60&#60 8;
j = j &#60&#60 j;
//------------------------------------------------ 6


int F6(long n)
{ int i,s;
for (i=0,s=0; i &#60 sizeof(long) * 8; i++)
{ if (n &#38 1) s++; n &#62&#62=1; }
return s; }
//------------------------------------------------ 7


long F7(long n)
{ int i; long s;
for (i=s=0; i &#60 sizeof(long) * 8; i++)
{ s &#60&#60=1; s |= n &#38 1; n &#62&#62=1; }
return s; }
//------------------------------------------------ 8


long F8(long n, int m1, int m2)
{ long s,x; int i;
for (i=0,x=1,s=n; i &#60 sizeof(long)*8; i++)
{ if (i &#62=m1 &#38&#38 i &#60=m2) s |= x; x &#60&#60=1; }
return s; }
//------------------------------------------------ 9


int F9(char c[])
{ int i,s;
for (i=0; c[i] !='\0'; i++)
if (c[i] &#62='0' &#38&#38 c[i] &#60='7') break;
for (s=0; c[i] &#62='0' &#38&#38 c[i] &#60='7'; i++)
{ s &#60&#60=3; s |= c[i] &#38 0x7; }
return s; }
//------------------------------------------------ 10


void F10(char c[],long n)
{ int i;
i=sizeof(long)*8/3 +1;
for (c[i--]='\0'; i&#62=0; i--)
{ c[i] = n &#38 0x7 + '0'; n &#62&#62=3; }
}
//------------------------------------------------ 11


// Операция "^" - ИСКЛЮЧАЮЩЕЕ ИЛИ


int F11(long n)
{ int i,m,k;
for (i=m=k=0; i &#60 sizeof(long) * 8; i++, n &#62&#62= 1)
if ((n &#38 1) ^ m)
{ k++; m =!m; }
return k; }
//------------------------------------------------ 12


int F12(long n)
{ int i,m,k;
for (i=m=k=0; i &#60 sizeof(long) * 8; i++, n &#62&#62= 1)
if (n &#38 1)
k++;
else
{ if (k &#62 m) m=k; k=0; }
return m; }




Начало  Назад  Вперед



Книжный магазин