Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
1662 / 1131 / 80
Регистрация: 21.08.2008
Сообщений: 4,724
Записей в блоге: 1
1

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

20.12.2011, 14:05. Просмотров 1924. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2011, 14:05
Ответы с готовыми решениями:

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

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

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

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

21
Эксперт С++
3209 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2011, 14:06 2
выпендреж?
0
1662 / 1131 / 80
Регистрация: 21.08.2008
Сообщений: 4,724
Записей в блоге: 1
20.12.2011, 14:07  [ТС] 3
Цитата Сообщение от niXman Посмотреть сообщение
выпендреж?
как бэ вариант, судя по остальному говнокоду
0
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
20.12.2011, 14:10 4
Кривонедообфускация в исполнении чайника. Думает, что ни кто его математику не расшифрует.
0
929 / 754 / 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
Jesus loves me
Эксперт С++
5096 / 3110 / 351
Регистрация: 12.12.2009
Сообщений: 7,845
Записей в блоге: 2
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
Эксперт С++
5015 / 2594 / 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
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
24.12.2011, 21:19 14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Kastaneda, с другой стороны, когда объявляются некоторые флаги, то куда легче, да и правильнее и логичнее, сделать так:
Сложнее и не логичнее, ты хотел сказать.

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

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

Добавлено через 2 минуты
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую... Видимо, программировать вам не надо.
0
Эксперт С++
5015 / 2594 / 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
Эксперт С++
5036 / 3096 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
25.12.2011, 00:10 17
fasked, ну уж не знаю... В случае 1 << n сразу понятно, что флаг устанавливается в n-м разряде, в отличие от, скажем, 128 (какая это там степень двойки? Надо бы калькулятор всё-же купить...). Ну это я утрируя))
0
Эксперт С++
5015 / 2594 / 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
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
26.12.2011, 11:21 19
Цитата Сообщение от silent_1991 Посмотреть сообщение
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую... Видимо, программировать вам не надо.
Это я тебе сочувствую, раз тебе даже единицу с нолями приходится вычислять. Мне же проще ввести результат, а в десятичной форме, или для краткости в шестнадцатеричной - вопрос вторичный. Десятичную запись первых 11-ти степеней (начиная с нулевой) и шестнадцатеричную - первых 4-х (также с нулевой) я помню, флаги больше 1024-х в десятичной форме однозначно проигрывают шестнадцатеричному представлению, так как оно компактней, а в нём первые 4 степени соответствуют цифрам, что позволяет быстро и безо всяких вычислений набрать готовый флаг любой степени. До 1024-х систему можно выбрать произвольно. Не задача программы выбирать себе флаги, об этом должен позаботиться девелопер, программа же должна работать с тем, что ей дали. И мои проги так и делают.
0
Эксперт С++
5015 / 2594 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
26.12.2011, 14:55 20
Цитата Сообщение от taras atavin Посмотреть сообщение
Это я тебе сочувствую, раз тебе даже единицу с нолями приходится вычислять. Мне же проще ввести результат, а в десятичной форме, или для краткости в шестнадцатеричной - вопрос вторичный. Десятичную запись первых 11-ти степеней (начиная с нулевой) и шестнадцатеричную - первых 4-х (также с нулевой) я помню, флаги больше 1024-х в десятичной форме однозначно проигрывают шестнадцатеричному представлению, так как оно компактней, а в нём первые 4 степени соответствуют цифрам, что позволяет быстро и безо всяких вычислений набрать готовый флаг любой степени. До 1024-х систему можно выбрать произвольно. Не задача программы выбирать себе флаги, об этом должен позаботиться девелопер, программа же должна работать с тем, что ей дали. И мои проги так и делают.
Мы все знаем, что Вы гений. Позвольте уж нас, простым смертным, пообщаться на темы стиля.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2011, 14:55

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

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

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

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

Опишите, используя структуру записи, книги(автор,название,год издания).Составьте программу вывода на экран упорядоченного списка книг(по фамилии автор
Опишите, используя структуру записи, книги(автор,название,год издания).Составьте программу вывода...

Что можете сказать ?
У одной программулки в разделе импортируемых функций есть такие функции, как: ...

Что можно сказать о функции?
Что можно сказать о функции если: ∃ \varepsilon &gt;0 ∀ \delta &gt;0 : |x-{x}_{0}|&gt;\delta...


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

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

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