Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
oxotnik
1612 / 1089 / 71
Регистрация: 21.08.2008
Сообщений: 4,576
Записей в блоге: 1
#1

Что хотел сказать автор?

20.12.2011, 14:05. Просмотров 1733. Ответов 21
Метки нет (Все метки)

Код C++
C++
1
2
#define MAX_SIZE (8192) 
signed char buf[(MAX_SIZE +1) >> 1];


почему нельзя записать:

C++
1
signed char buf[4096];

точнее, чем они могут различаться?
MAX_SIZE используется только в одном месте, больше в коде нигде не используется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 14:05
Ответы с готовыми решениями:

Внутри участки кода. Прошу опытных сказать что это за вид языка
Здравствуйте!Я до сих пор мучаюсь какие бывают виды c++.вот наконец нашел...

Новичок пришел с basic на с++ builder и хотел бы узнать что лучше и чем.
И так пришёл новичок с бейзика на с++ билдер и хотел бы узнать и местных...

Создание описания праложения(автор, версия итп)
Где и как такое делается?В некоторых продуктах очень подробно реализуется,...

Задание из книги Р.Лафоре. Что автор имел ввиду?
Здравствуйте! Добрался до 7-й главы книги Лафоре и мне непонятно что имел...

Что Вы можете сказать о индусе по его коду
Не так давно взялся учить С++, будучи ещё школотой. Читаю книжку С.Прата "Язык...

21
niXman
Эксперт С++
3202 / 1451 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2011, 14:06 #2
выпендреж?
0
oxotnik
1612 / 1089 / 71
Регистрация: 21.08.2008
Сообщений: 4,576
Записей в блоге: 1
20.12.2011, 14:07  [ТС] #3
Цитата Сообщение от niXman Посмотреть сообщение
выпендреж?
как бэ вариант, судя по остальному говнокоду
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
20.12.2011, 14:10 #4
Кривонедообфускация в исполнении чайника. Думает, что ни кто его математику не расшифрует.
0
xAtom
917 / 742 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.12.2011, 09:15 #5
taras atavin, я там вообще не вижу математики.
0
silent_1991
21.12.2011, 11:35
  #6

Не по теме:

xAtom, операция сложения - арифметическая, арифметика есть часть математики. Операцию сдвига можно представить как операцию деления на 2, тут деление -> арифметика -> математика. Ну это так, лирика :D

0
oxotnik
21.12.2011, 13:19  [ТС]
  #7

Не по теме:

вижу тут быстрый способ деления за 2 такта, вместо обычных 20... хотя оптимизировали не в том месте :)

0
silent_1991
21.12.2011, 13:20
  #8

Не по теме:

oxotnik, во-первых, насколько мне известно, компилятор и сам деление на 2 оптимизирует сдвигом, во-вторых, тут вычисления compile-time.

1
oxotnik
21.12.2011, 13:26  [ТС]
  #9

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
тут вычисления compile-time.
ну значит время компиляции сократили :)

1
Kastaneda
Jesus loves me
Эксперт С++
4768 / 2971 / 342
Регистрация: 12.12.2009
Сообщений: 7,532
Записей в блоге: 2
Завершенные тесты: 1
23.12.2011, 17:50 #10
Да, по-моему тоже это из разряда "смотрите как я умею!"
0
silent_1991
24.12.2011, 01:38
  #11

Не по теме:

Kastaneda, с другой стороны, когда объявляются некоторые флаги, то куда легче, да и правильнее и логичнее, сделать так:

C++
1
2
3
4
int FLAG1 = 1 << 0;
int FLAG2 = 1 << 1;
int FLAG3 = 1 << 2;
//.....
, а не так:
C++
1
2
3
4
int FLAG1 = 1;
int FLAG2 = 2;
int FLAG3 = 4;
//.....

0
fasked
Эксперт С++
4978 / 2557 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.12.2011, 20:33 #12
silent_1991, ну вот с нулевым сдвигом я бы поспорил
0
silent_1991
24.12.2011, 21:13
  #13

Не по теме:

fasked, единообразие ИМХО.

0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
24.12.2011, 21:19 #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Kastaneda, с другой стороны, когда объявляются некоторые флаги, то куда легче, да и правильнее и логичнее, сделать так:
Сложнее и не логичнее, ты хотел сказать.

Добавлено через 47 секунд
Цитата Сообщение от xAtom Посмотреть сообщение
taras atavin, я там вообще не вижу математики.
Потому что она там примитивна.

Добавлено через 1 минуту
Цитата Сообщение от Kastaneda Посмотреть сообщение
Да, по-моему тоже это из разряда "смотрите как я умею
сам себя запутать!" Согласен.
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
24.12.2011, 21:27 #15
taras atavin, я хотел сказать то, что хотел сказать. В отличие от вас, я стараюсь выражаться ясно.

Добавлено через 2 минуты
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую... Видимо, программировать вам не надо.
0
fasked
Эксперт С++
4978 / 2557 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.12.2011, 00:00 #16
Цитата Сообщение от silent_1991 Посмотреть сообщение
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую
Ну, лично для меня, в понимании равнозначны стили:
C
1
2
3
4
5
6
7
8
9
x << 1
x << 2
x << 3
 
0x01
0x02
0x04
0x08
0x10
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
25.12.2011, 00:10 #17
fasked, ну уж не знаю... В случае 1 << n сразу понятно, что флаг устанавливается в n-м разряде, в отличие от, скажем, 128 (какая это там степень двойки? Надо бы калькулятор всё-же купить...). Ну это я утрируя))
0
fasked
Эксперт С++
4978 / 2557 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
26.12.2011, 10:22 #18
Цитата Сообщение от silent_1991 Посмотреть сообщение
fasked, ну уж не знаю... В случае 1 << n сразу понятно, что флаг устанавливается в n-м разряде, в отличие от, скажем, 128 (какая это там степень двойки? Надо бы калькулятор всё-же купить...). Ну это я утрируя))
После того, как была введена константа, указывающая номер бита, в принципе уже не важно, какой он на самом деле. Потому что числа использоваться все равно не придется.
Отдельно про 128 - я тоже не понимаю так быстро номер бита, если писать в десятичной СС, а вот если в шестнадцатиричной, то все просто (о чем я и хотел сказать на примере).
Код
0x1 - первый
0x2 - второй
0x4 - третий
0x8 - четвертый
0x10 - пятый
0x100 - девятый
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
26.12.2011, 11:21 #19
Цитата Сообщение от silent_1991 Посмотреть сообщение
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую... Видимо, программировать вам не надо.
Это я тебе сочувствую, раз тебе даже единицу с нолями приходится вычислять. Мне же проще ввести результат, а в десятичной форме, или для краткости в шестнадцатеричной - вопрос вторичный. Десятичную запись первых 11-ти степеней (начиная с нулевой) и шестнадцатеричную - первых 4-х (также с нулевой) я помню, флаги больше 1024-х в десятичной форме однозначно проигрывают шестнадцатеричному представлению, так как оно компактней, а в нём первые 4 степени соответствуют цифрам, что позволяет быстро и безо всяких вычислений набрать готовый флаг любой степени. До 1024-х систему можно выбрать произвольно. Не задача программы выбирать себе флаги, об этом должен позаботиться девелопер, программа же должна работать с тем, что ей дали. И мои проги так и делают.
0
fasked
Эксперт С++
4978 / 2557 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
26.12.2011, 14:55 #20
Цитата Сообщение от taras atavin Посмотреть сообщение
Это я тебе сочувствую, раз тебе даже единицу с нолями приходится вычислять. Мне же проще ввести результат, а в десятичной форме, или для краткости в шестнадцатеричной - вопрос вторичный. Десятичную запись первых 11-ти степеней (начиная с нулевой) и шестнадцатеричную - первых 4-х (также с нулевой) я помню, флаги больше 1024-х в десятичной форме однозначно проигрывают шестнадцатеричному представлению, так как оно компактней, а в нём первые 4 степени соответствуют цифрам, что позволяет быстро и безо всяких вычислений набрать готовый флаг любой степени. До 1024-х систему можно выбрать произвольно. Не задача программы выбирать себе флаги, об этом должен позаботиться девелопер, программа же должна работать с тем, что ей дали. И мои проги так и делают.
Мы все знаем, что Вы гений. Позвольте уж нас, простым смертным, пообщаться на темы стиля.
1
26.12.2011, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2011, 14:55

Можете сказать что в этом коде не так? он предназначен для вывода натуральных чисел по спирали
#include &lt;iostream&gt; using namespace std; int main() { int...

Что хотел автор кода?
Всем доброго времени суток! Сегодня у меня взломали сайт. В файле index.php в...

Хотел бы кое что выяснить
Какая максимальная и минимальная температура диода PCH является хорошей!


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

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

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