Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что означает эта запись? 
:(
    Опции темы
xvr
Дата 13.4.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(J0ker @ 13.4.2009,  00:02)
при сдвиге знаковый бит копируется - т.е. 10000000 >> 1 = 11000000; 100000000 >> 5 = 11111100 - что соответствует делению на 2^n

Уточнение - не совсем соответствует: (-1/2) == 0 but (-1 >> 1) == -1
PM MAIL   Вверх
J0ker
Дата 13.4.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(UnrealMan @  13.4.2009,  13:11 Найти цитируемый пост)
минус 0.5 (потому что я сегодня добрый )

оппа
вот это жопа

впрочем, правильно
два моих утверждения противоречат друг другу...
остановимся на "от представления"  smile

Добавлено через 4 минуты и 45 секунд
Цитата(xvr @ 13.4.2009,  15:30)
Цитата(J0ker @ 13.4.2009,  00:02)
при сдвиге знаковый бит копируется - т.е. 10000000 >> 1 = 11000000; 100000000 >> 5 = 11111100 - что соответствует делению на 2^n

Уточнение - не совсем соответствует: (-1/2) == 0 but (-1 >> 1) == -1

Уточнение - совсем соответствует
вы не в ту сторону округляете
рассмотрите пример любого нечетного


--------------------
user posted image
PM MAIL   Вверх
xvr
Дата 13.4.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(J0ker @ 13.4.2009,  16:21)

Цитата
Уточнение - не совсем соответствует: (-1/2) == 0 but (-1 >> 1) == -1

Уточнение - совсем соответствует
вы не в ту сторону округляете

Это не я округляю, это компилятор:
Код

#include <stdio.h>

main()
{
 printf("%d %d\n",-1/2,-1>>1);
 return 0;
}


Код

C:\!>cl tt.cxx
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

tt.cxx
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:tt.exe
tt.obj

C:\!>tt.exe
0 -1

Код

[rakhvato@msteplxl11 ~]$ g++ tt.cxx
[rakhvato@msteplxl11 ~]$ ./a.out
0 -1
[rakhvato@msteplxl11 ~]$ g++ -v
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)


Цитата

рассмотрите пример любого нечетного
Для нечетного будет совпадать


Это сообщение отредактировал(а) xvr - 13.4.2009, 16:43
PM MAIL   Вверх
mes
Дата 13.4.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(J0ker @  13.4.2009,  15:21 Найти цитируемый пост)
Уточнение - совсем соответствует

 -1>>666 == -1;  smile 


--------------------
PM MAIL WWW   Вверх
J0ker
Дата 13.4.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



xvr, вы не поняли
округление в сторону ближайшего меньшего
-5/2 = -3
-7/2 = -4
-1/2 = -1
никаких исключений


--------------------
user posted image
PM MAIL   Вверх
J0ker
Дата 13.4.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



mes, , вы не поняли
округление в сторону ближайшего меньшего
-5/2 = -3
-7/2 = -4
-1/2 = -1
никаких исключений 
 smile 




--------------------
user posted image
PM MAIL   Вверх
mes
Дата 13.4.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(J0ker @  13.4.2009,  15:48 Найти цитируемый пост)
округление в сторону ближайшего меньшего

при -1 / 2^666  ближайшее меньшее будет -1 ?!


--------------------
PM MAIL WWW   Вверх
J0ker
Дата 13.4.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(mes @ 13.4.2009,  16:51)
Цитата(J0ker @  13.4.2009,  15:48 Найти цитируемый пост)
округление в сторону ближайшего меньшего

при -1 / 2^666  ближайшее меньшее будет -1 ?!

ну дык
mes, вы тУпите?  smile 


--------------------
user posted image
PM MAIL   Вверх
mes
Дата 13.4.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(J0ker @  13.4.2009,  16:00 Найти цитируемый пост)
ну дык

ага парюсь.. сбила формулировка 

Цитата(J0ker @  13.4.2009,  15:48 Найти цитируемый пост)
округление в сторону ближайшего меньшего

воспринял как в сторону ближайшего, а про меньшее забыл smile




--------------------
PM MAIL WWW   Вверх
xvr
Дата 13.4.2009, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(J0ker @ 13.4.2009,  16:48)
xvr, вы не поняли
округление в сторону ближайшего меньшего
-5/2 = -3
-7/2 = -4
-1/2 = -1
никаких исключений

Жаль, что компиляторы С/С++ не в курсе, и округляют к 0  smile
PM MAIL   Вверх
J0ker
Дата 13.4.2009, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(xvr @  13.4.2009,  19:18 Найти цитируемый пост)
Жаль, что компиляторы С/С++ не в курсе, и округляют к 0

здесь обсуждается не деление, а сдвиг
я вам указую, что никаких исключений при сдвиге нет - ни у positive/negative signed ни у unsigned - и там и там в текущем представлении сдвиг в право на один бит эквивалентен делению на 2 с округлением к меньшему  smile 


--------------------
user posted image
PM MAIL   Вверх
mes
Дата 14.4.2009, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(xvr @  13.4.2009,  14:30 Найти цитируемый пост)
Цитата

при сдвиге знаковый бит копируется - т.е. 10000000 >> 1 = 11000000; 100000000 >> 5 = 11111100 - что соответствует делению на 2^n

Уточнение - не совсем соответствует: (-1/2) == 0 but (-1 >> 1) == -1 


Цитата(J0ker @  13.4.2009,  22:34 Найти цитируемый пост)
десь обсуждается не деление, а сдвиг
я вам указую, что никаких исключений при сдвиге нет


 smile 



--------------------
PM MAIL WWW   Вверх
J0ker
Дата 14.4.2009, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



mes,
а где я здесь говорю про округление? или как-то привязываю соответствующее сдвигу деление к реализации оного где- и чем-либо?
не выдавайте пжалста свои фантазии за мои слова  smile 


--------------------
user posted image
PM MAIL   Вверх
mes
Дата 14.4.2009, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(J0ker @  14.4.2009,  00:17 Найти цитируемый пост)
а где я здесь говорю про округление? или как-то привязываю соответствующее сдвигу деление к реализации оного где- и чем-либо?
не выдавайте пжалста свои фантазии за мои слова  smile 

думал две цитаты обойдутся без коммента..Исправляюсь : Я привел их к тому, что Вы оба говорите об одном и том же, но с разных сторон и причины для спора лично я не вижу smile
т.е для полной картины надо обе ваши фразы объединить , типа  этого:
Цитата

результат сдвига вправо всегда соответсвует рез-ту деления (...)  с округлением к меньшему,
однако для отрицательных чисел не соответсвует результату деления посредством "/".





Это сообщение отредактировал(а) mes - 14.4.2009, 01:58


--------------------
PM MAIL WWW   Вверх
xvr
Дата 14.4.2009, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(mes @ 14.4.2009,  01:57)
думал две цитаты обойдутся без коммента..Исправляюсь : Я привел их к тому, что Вы оба говорите об одном и том же, но с разных сторон и причины для спора лично я не вижу smile
т.е для полной картины надо обе ваши фразы объединить , типа  этого:
Цитата

результат сдвига вправо всегда соответсвует рез-ту деления (...)  с округлением к меньшему,
однако для отрицательных чисел не соответсвует результату деления посредством "/".

Полностью согласен. 2 J0ker  - консенсус?  smile 

PM MAIL   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0915 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.