15 / 15 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
1 | |
Обьясните понятие как работает Операция языка21.07.2013, 14:53. Показов 3956. Ответов 62
Метки нет (Все метки)
Простите пожалуста, если я не видел аналогичной темы.
Вот Операции сдвига ( « и » ) применяются к целочисленным операндам. Они сдвигают двоичное представление первого операнда влево или вправо на количество двоичных разрядов, заданное вторым операндом. При сдвиге влево ( « ) освободившиеся разряды обнуляются. При сдвиге вправо (>) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае. Операции сдвига не учитывают переполнение и потерю значимости. Как-то не ложится в мозг. Тупо читал минут 15, неи очень что-то понял.. Можно пожалуста на примерах?
0
|
21.07.2013, 14:53 | |
Ответы с готовыми решениями:
62
Обьясните как работает рекурсия Обьясните, как работает цикл обьясните пожалуйта как работает программа Обьясните как работает рекурсия в данной задаче |
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 15:53 | 21 |
Ну это врядли, 128-битные, а 126 не входит в последовательность степеней двойки, только если использовать не 2-ю систему.
Оттуда взята цитата: Представление числа в привычной форме "знак"-"величина", при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно.(с) Теперь объясните разницу с тем, что писал я? Мы сейчас рассматриваем прямой код? И где я не прав? Я извинюсь, если что ;-)
1
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 15:58 | 24 |
Я сейчас не понял?) Я не правильно посчитал?)
Добавлено через 44 секунды А какое отношение имеет дополнительный код к операциям сдига?
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
||||||
21.07.2013, 16:01 | 26 | |||||
1
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 16:03 | 28 |
Операцию сдвига можно рассматривать, как чёрный ящик, особенно начинающему С++.
Мы будем пугать просящего помощи сложными для него понятиями типа обратного кода или ответим на вопрос что есть побитовый сдвиг?
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 16:07 | 30 |
Человек попросил помощи. Я ему дал понять что происходит при побитовом сдвиге на примере прямого кода, для наилучшего понимания. ТС новичёк? Ему сходу нужно знать чудеса обратного кода? Думаю для понимания я всё написал верно, а то как инженеры воплотили компьютерную математику ТС знать пока не обязательно.
0
|
21.07.2013, 16:09 | 31 |
Ты не прав. Ты зачем то начал объяснять как выглядит отрицательное число в двоичном представлении, и объяснять не правильно. Оно так не выглядит. Если бы я этого не знал то непременно бы запутался от твоих слов.
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 16:15 | 32 |
Окай, я прошу участников форума простить меня за то, что я не уточнил, что прямой код - это беспантово и его ни в коем случае нельзя использовать в своей голове и рассуждениях...
Тем не менее ТС понял смысл сдвига и получил ответ адекватный его знаниям. Добавлено через 3 минуты Я всё объяснил правильно!!! Ещё раз повторяю: то что алгоритмически удобнее использовать в архитектуре компьютера ещё не значит, что нельзя иначе. Т.е. Вы хотите сказать, что прямой код не реализуем в принципе? Обратный используется потому что с ним удобнее работать. Фразу "В компьюетере используется только прямой код" я не писал вроде. Добавлено через 1 минуту Отрицательное число в двоичном представлении выглядит именно так! Непосредственно в ЭВМ - соглашусь, я не прав буду, если скажу так, а в самом представлении я не ошибся.
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 16:22 | 34 |
Почитайте основы. Теорию двоичной системы. Я всё правильно написал и ТС всё правильно понял. Форум не посвящён компьютерному железу. То что дополнительный код удобно использовать ещё не значит, что он протеворечит прямому коду. Не несёт пользы говорите? А мне показалось, что ТС написал, будто ему всё стало понятно, хотя Вам же виднее ;-)
0
|
21.07.2013, 16:31 | 35 |
Разумеется он написал что ему все понятно, он же не знал что у него в компьютере отрицательные числа имеют не такое представление.
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 16:49 | 36 |
Вы прикалываетесь сейчас?) Или тупо поспорить хочется?)
Ему это и не надо знать, по крайней мере пока что. Я из-за таких дотошных учителей сначала испугался, думал, что программирование - это кошмар, но мне попался хорошо объясняющий на русском языке основы человек, а дальше я сам всё начал учить, опираясь на простые истины. А Вы с ходу убиваете весь энтузиазм у будущего, возможно, невероятно талантливого программиста из-за каких-то мелочных архитектурных особенностей ПК. Он программист, ему не придётся паять микросхемы. Все азы правильно объяснять в прямом коде - так делают в ВУЗах, потом со временем поясняют, мол это всё правильно, но когда-то один умник выдумал обратный код для ускорения вычитания и поэтому архитектура компа иная. И что? Операция сдвига от иного представления числа не меняет своего смысла. Добавлено через 7 минут То что мне нужно я уже знаю и мне хватает с головой. То что не знаю выучу когда понадобится. Об обратном коде я знаю много чего и вообще об архитектуре компьютера. Транзисторы, триггеры и прочую ересь, но мне эти знания ещё не пригодились при программировании. Так что предлагаю заканчивать дискуссию о том кто умнее - Вы наверняка очень умный, но тема обсуждения иная и ТС вроде удовлетворился ответом.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
|
|
21.07.2013, 16:53 | 37 |
хорошо покажи сколько в теории число -2
что есть дополнительный код ? что есть обратный код ? и в чем их преимущество? почему для отрицательных используют дополнительный а не обратный код есть ли разница для сдвига вправо для знакового и безнакового числа? а для ТС проше объяснить на 10чном коде сдвиг влево вправо это деление умножение на 2 если представим что не на 2 а на 10( это не соответствует действительности так для иллюстрации) число 10 сдвинули вправо значит второй разряд ушел на место первого а первый потерялся получили 1 все равно что поделили на 10 число 10 сдвинули влево в третий разряд ушел второй во второй ушел первый а в первый записали 0 получили 100 все равно что умножили на 10 теперь вернемся к двоичным 10(2) сдвинуть вправо получили 1(1), все равно что разделили на 2 10(2) сдвинули влево получили 100(4),все равно что умножили на 2 Добавлено через 1 минуту серьезно? арифметический и логический сдвиг это одно и тоже?
0
|
15 / 15 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
|
|
21.07.2013, 16:54 [ТС] | 38 |
Так, в начале отрицателього числа стоит единица. Так? Тогда чем оно отличается от такого же положительного числа? Допустим, 10000001=129 и все тут?
Спасибо за развёрнутую биседу!
0
|
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
|
|
21.07.2013, 17:08 | 39 |
Вы что? Нет конечно! Это разные вещи.
Товарищ преподаватель, мне уже все возможные экзамены в зачётке выставлены и зачётка благополучно выброшена) Продолжайте в том же духе. Объясните ещё ТС что-то умное и "важное", чтобы он наверняка плюнул на программирование и пошёл, как нормальные пацанчики, на стройку.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
|
|||||||||||
21.07.2013, 17:13 | 40 | ||||||||||
так, да не так
это в дополнительном коде для того чтобы перевести число в дополнительный код нужно инвертировать его и добавить 1 например число 1 0000 0001 а -1 1111 1111 преимущество использования дополнительного кода выясняются при сложении положительных и отрицательных чисел например 1+(-1)= 0000 0001 +1111 1111 =0000 0000 а вот здесь уже разночтение в прямом коде 129 в дополнительном -127 в языке Си для этого есть знаковые и безнаковые переменные (signed \ unsigned) например
поэтому диапазон значений signed char -128..127 unsigned char 0...255 число 129 ты в signed char не запишешь Добавлено через 2 минуты абсолютно разные или иногда одинаковые? т.е я так понимаю отчислен потому что чтобы получить диплом нужно сдать зачетку и студенческий билет
1
|
21.07.2013, 17:13 | |
21.07.2013, 17:13 | |
Помогаю со студенческими работами здесь
40
метод гауса..обьясните как работает программа Функция C++ в php или обьясните по подробнее как она работает Не понимаю как работает операция new с размещением в конструкторе переноса Обьясните как работает fgets() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |