![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
rthsobakas |
|
|||
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
Что означает эта запись?
UINT64 id; id=id<<1; and UINT64 v; v=v>>6; То есть не совсем ясно сущность >> в данном случае |
|||
|
||||
X-3R1 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 28.4.2007 Репутация: 1 Всего: 2 |
смещение влево на один бит, и вправо на 6 бит
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
rthsobakas |
|
|||
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 562 Регистрация: 20.9.2007 Репутация: нет Всего: -1 |
X-3R1, сдвиг какой? циклический арифметический? То есть сдвигает и нули пишет или переносит бит?
|
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
а вы сами не можете проверить?
Это сообщение отредактировал(а) zim22 - 11.4.2009, 20:58 |
||||
|
|||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
ничо не переносит, просто сдвигает и всё (слева будет ставить бит знака, а справа нули) есть разница между signed и unsigned, у unsigned бит знака ноль, а у signed может быть ноль, а может быть еденица, что там стоит, то и будет ставиться Это сообщение отредактировал(а) inside_pointer - 12.4.2009, 00:32 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
да есть он, просто он нулю равен всё время
update: иначе как она определяет signed там или unsigned и чем заполнять Это сообщение отредактировал(а) inside_pointer - 12.4.2009, 04:36 |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
На этапе компиляции определяет набор команд и действий. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
для signed сдвиг зависит от компилятора, может заменять слева знаковым битом, а может другим
почему unsigned - положительное число ? если компилятор знает про знак, как он его определяет у unsigned ? я думаю там стоит ноль где-то |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
||||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
inside_pointer
нету у unsigned знакового бита, т.е. сам бит есть, но он не используется для хранения знака и не для хранения просто нуля. А для того чтобы хранить больше данных, т.е. использовать знаковый бит для хранения числа.
|
|||
|
||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
понимаешь, он может ноль слева ставить просто так, для всех, а может для знаковых ставить знаковый бит, и, вот, если он для знаковых ставит знаковый бит, то почему он для беззнаковых не ставит знаковый бит (ну который всегда равен нулю) ?
если сравнить число unsigned с нулём, почему оно больше ? |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
нету никакого знакового бита в целых числах,
то что старший разряд отрицательного целого числа равен 1, это не говорит о том что это знаковый бит если бы в целых числах использовался знаковый бит, то int(-1) было бы 0x80000001, а не 0xFFFFFFFF и операция отрицания выглядела бы как "x=x xor 0x80000000" а не "x=(not x)+1 " знаковый бит используется в вещественных числах, там действительно изменение 1 разряда меняет знак числа, и там есть +0 и -0 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |