0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 13
|
|
1 | |
Что это может значить???16.12.2010, 23:25. Показов 1108. Ответов 19
Метки нет (Все метки)
0
|
16.12.2010, 23:25 | |
Ответы с готовыми решениями:
19
ошибка Id returned 1 exit status что может значить? Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы подчеркивает запятую после 50, что это может быть? Что это за знак >> прочитал что это сдвиг вправо? что он делает |
94 / 94 / 14
Регистрация: 04.06.2010
Сообщений: 223
|
|
16.12.2010, 23:32 | 2 |
Побитовые операции. Сдвиг вправо, побитовое И.
0
|
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 13
|
|
16.12.2010, 23:34 [ТС] | 3 |
т.е. сдвиг вправо на 1 в массиве dir[x][y]?
0
|
94 / 94 / 14
Регистрация: 04.06.2010
Сообщений: 223
|
|
16.12.2010, 23:37 | 4 |
SergeyM,нет сдвиг на 1 бит вправо числа dir[x][y];
Например, dir[x][y] = 2; В двоичном коде это будет 0...010, после сдвига получится 0...001, т.е. число 1;
1
|
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 13
|
|
16.12.2010, 23:39 [ТС] | 5 |
аааа понятно
а ! - это просто часть синтаксиса?
0
|
94 / 94 / 14
Регистрация: 04.06.2010
Сообщений: 223
|
|
16.12.2010, 23:41 | 6 |
логическое отрицание
0
|
7 / 7 / 1
Регистрация: 16.12.2010
Сообщений: 23
|
|
16.12.2010, 23:43 | 7 |
Кстати, вопрос, что собственно проверяет условие в первом посте? Кратно ли число 4-м?
0
|
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 13
|
|
16.12.2010, 23:47 [ТС] | 8 |
значит f (!(dir[x][y] >> 1 & 1)) означает, что
если сдвиг на 1 бит вправо числа dir[x][y] не равно 1 то ... ???
0
|
7 / 7 / 1
Регистрация: 16.12.2010
Сообщений: 23
|
|
16.12.2010, 23:49 | 9 |
SergeyM, нет, & это побитовое "И". Пример: 5&3 = 101 & 011 = 001 = 1;
Соответственно полученное в итоге (после >> и &) число будет сравниваться с нулем (свойство !(num), не знаю как объяснить)
1
|
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 13
|
|
16.12.2010, 23:50 [ТС] | 10 |
ну ладно примерно понял)
спасибо
0
|
94 / 94 / 14
Регистрация: 04.06.2010
Сообщений: 223
|
|
16.12.2010, 23:54 | 11 |
SergeyM, проверяется будет ли после сдвига на 1 бит последний бит 0. В целом тут проверяется на четность/нечетность dir[x][y]
0
|
7 / 7 / 1
Регистрация: 16.12.2010
Сообщений: 23
|
|
16.12.2010, 23:56 | 12 |
besstiaa, чет/нечет это же без сдвига вроде. А со сдвигом что-то для меня, увы, непонятное.
1
|
94 / 94 / 14
Регистрация: 04.06.2010
Сообщений: 223
|
|
17.12.2010, 00:01 | 13 |
Да точно. Ну сдвиг вправо - это вроде как деление на 2 в степени n, где n - число бит сдвига. В данном случае получается, что проверяется на четность/нечетность результат деления dir[x][y]/2
1
|
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
|
|
17.12.2010, 02:24 | 14 |
сдвиг влево/вправо эквивалентен умножению/делению на основание системы счисления, в ЭВМ система счисления двоичная, стало быть сдвиг влево/вправо это умножение/деление на 2.
Тут число делится на два и проверяется остаток - есть 1 то число не четное, 0 - четное. Просто приоритеты операторов в такой записи: if (!(dir[x][y] >> 1 & 1)); вот такие: if (not((dir[x][y] >> 1) & 1));. P. S. Чета я проглядел, что такой ответ уже дали извиняюсь.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
17.12.2010, 14:14 | 17 |
нет, правильно accept сказал. Независимо от того, был ли младший бит установлен, или нет, после целочисленного деления на два от него ничего не останется. А вот частное от деления как-раз так на чётность и проверяется...
0
|
17.12.2010, 16:44 | 18 |
Не по теме: Это как вариант, но нельзя не согласиться, что (!(dir[x][y] >> 1 & 1)) и (dir[x][y]^2) проверяют одно и то же условие, а именно - является ли первый бит нулем, только предложенная мною запись - это одна операция а у ТС три операции. Добавлено через 15 минут сорри, я тупанул, вместо (dir[x][y]^2) правильно будет (!(dir[x][y]&2))
0
|
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
|
|
17.12.2010, 16:52 | 19 |
Kastaneda, фигасе ты тупишь, не ожидал от тебя О_o
0
|
Kastaneda
|
17.12.2010, 16:57
Что это может значить???
#20
|
0
|
17.12.2010, 16:57 | |
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? Что бы это могло значить? Что бы это могло значить? График в Delphi, что это значить? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |