Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
#1

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

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

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


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

C++
1
signed char buf[4096];

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

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

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

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

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

Что можно сказать об этом #include "stdafx.h" - C++
За что оно отвечает и где его можно использовать?! Много раз встречал но так и не понял зачем оно! #include "stdafx.h"

Всегда хотел знать но боялся спросить - C++
Почему в моих программа мне постоянно приходиться два раза прописывать вот такой текст cin.get(); cin.get(); почему не один раз?

Хотел бы попросить помочь разобраться в куске кода - C++
Всю программу приводить смысла нету, программа представляет собой интерпретатор формул на с++. Есть файл, в котором определены лексемы,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2011, 14:06     Что хотел сказать автор? #2
выпендреж?
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
20.12.2011, 14:07  [ТС]     Что хотел сказать автор? #3
Цитата Сообщение от niXman Посмотреть сообщение
выпендреж?
как бэ вариант, судя по остальному говнокоду
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.12.2011, 14:10     Что хотел сказать автор? #4
Кривонедообфускация в исполнении чайника. Думает, что ни кто его математику не расшифрует.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.12.2011, 09:15     Что хотел сказать автор? #5
taras atavin, я там вообще не вижу математики.
silent_1991
21.12.2011, 11:35
  #6

Не по теме:

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

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

Не по теме:

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

silent_1991
21.12.2011, 13:20
  #8

Не по теме:

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

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

Не по теме:

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

Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
23.12.2011, 17:50     Что хотел сказать автор? #10
Да, по-моему тоже это из разряда "смотрите как я умею!"
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;
//.....

fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.12.2011, 20:33     Что хотел сказать автор? #12
silent_1991, ну вот с нулевым сдвигом я бы поспорил
silent_1991
24.12.2011, 21:13
  #13

Не по теме:

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

taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.12.2011, 21:19     Что хотел сказать автор? #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Kastaneda, с другой стороны, когда объявляются некоторые флаги, то куда легче, да и правильнее и логичнее, сделать так:
Сложнее и не логичнее, ты хотел сказать.

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

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

Добавлено через 2 минуты
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую... Видимо, программировать вам не надо.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 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
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.12.2011, 00:10     Что хотел сказать автор? #17
fasked, ну уж не знаю... В случае 1 << n сразу понятно, что флаг устанавливается в n-м разряде, в отличие от, скажем, 128 (какая это там степень двойки? Надо бы калькулятор всё-же купить...). Ну это я утрируя))
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 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 - девятый
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2011, 11:21     Что хотел сказать автор? #19
Цитата Сообщение от silent_1991 Посмотреть сообщение
Если для вас легче представить, что число 4 является флагом для второго разряда, а не 100 (1 << 2), что ж, сочувствую... Видимо, программировать вам не надо.
Это я тебе сочувствую, раз тебе даже единицу с нолями приходится вычислять. Мне же проще ввести результат, а в десятичной форме, или для краткости в шестнадцатеричной - вопрос вторичный. Десятичную запись первых 11-ти степеней (начиная с нулевой) и шестнадцатеричную - первых 4-х (также с нулевой) я помню, флаги больше 1024-х в десятичной форме однозначно проигрывают шестнадцатеричному представлению, так как оно компактней, а в нём первые 4 степени соответствуют цифрам, что позволяет быстро и безо всяких вычислений набрать готовый флаг любой степени. До 1024-х систему можно выбрать произвольно. Не задача программы выбирать себе флаги, об этом должен позаботиться девелопер, программа же должна работать с тем, что ей дали. И мои проги так и делают.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2011, 14:55     Что хотел сказать автор?
Еще ссылки по теме:

Как сказать циклу - C++
Как сказать циклу выполняться 4 раза ?

true кодеры в чем ошибка, хотел перевести паскаль на с++ - C++
исходник : type vv = record x, y: longint; end; var a, b: array of vv; min, m, i, j, k, n: integer; function vect(a1,a2,b1,b2:...

Можете скомпилировать и сказать работает ли? - C++
Не хочу качать компилятор для 4-5 заданий, точнее занимали бы они меньше места как, например, Dev-CPP для С. Можете скомпилировать данный...

сокеты . вот НАФИГА так автор делает - C++
не могу понять автор пишит что нельзя создать прослушивающий сокет порт которого меньше 1024 а сам в коде использует 80 порт Крис...

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


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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
26.12.2011, 14:55     Что хотел сказать автор? #20
Цитата Сообщение от taras atavin Посмотреть сообщение
Это я тебе сочувствую, раз тебе даже единицу с нолями приходится вычислять. Мне же проще ввести результат, а в десятичной форме, или для краткости в шестнадцатеричной - вопрос вторичный. Десятичную запись первых 11-ти степеней (начиная с нулевой) и шестнадцатеричную - первых 4-х (также с нулевой) я помню, флаги больше 1024-х в десятичной форме однозначно проигрывают шестнадцатеричному представлению, так как оно компактней, а в нём первые 4 степени соответствуют цифрам, что позволяет быстро и безо всяких вычислений набрать готовый флаг любой степени. До 1024-х систему можно выбрать произвольно. Не задача программы выбирать себе флаги, об этом должен позаботиться девелопер, программа же должна работать с тем, что ей дали. И мои проги так и делают.
Мы все знаем, что Вы гений. Позвольте уж нас, простым смертным, пообщаться на темы стиля.
Yandex
Объявления
26.12.2011, 14:55     Что хотел сказать автор?
Ответ Создать тему
Опции темы

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