Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 06.06.2014
Сообщений: 14
1

Логические операции - найти ошибку в коде

20.07.2015, 09:19. Показов 301. Ответов 2
Метки нет (Все метки)

Есть код

C
1
2
3
4
5
6
7
8
9
10
        num = 0x4c58
        N = 4;
        res = 0;
    temp=num;
    for(i=7; i>=0; i--)
    {
        res = (res|((temp&0x8000) >> (4*N-1-i)));
        temp = temp<<2;
    }
    printf("%x %x\n", num, res);
Вывод выходит : 4c58, 22.

Вопрос почему 22??

Так как res который выходит в печать у нас самый последний в нашем цикле, нет смысла считать каждый из них, берём в расчёт только при последнее значении i. К тому моменту наш temp равен 320208896 в десятичной.
А это 13160000 в шест. 13160000&8000 выходит 0 и последующий сдвиг и операция | не имеют значения.
Прошу пояснения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2015, 09:19
Ответы с готовыми решениями:

Найти ошибку в коде
#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;malloc.h&gt; typedef struct node { int num;...

Найти ошибку в коде
#define M 20 #include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; main() { int a;...

Найти ошибку в коде
Где ошибка? #include&lt;stdio.h&gt; #include&lt;math.h&gt; main() ]{ int A,i,ost=0,k=0; clrscr();...

Найти ошибку в коде
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { float x,z; ...

__________________
2
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,513
20.07.2015, 09:59 2
Цитата Сообщение от Slippa Посмотреть сообщение
цикле, нет смысла считать каждый из них
ой ли, а res = res| ??
0
0 / 0 / 0
Регистрация: 06.06.2014
Сообщений: 14
20.07.2015, 10:32  [ТС] 3
магия))сразу как то всё срослось)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2015, 10:32

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Найти ошибку в коде
Подскажите,пожалуйста, в чем ошибка. #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt;...

Найти ошибку в коде
Из файла f11.txt вводятся пронумерованные целые числа, до первой встречи числа &quot;0&quot;. Выдать на...

Найти ошибку в коде
Добрый день помогите, пожалуйста найти ошибку: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; typedef...

Найти ошибку в коде
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; unsigned char read_mat(const char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.