59 / 5 / 0
Регистрация: 03.11.2015
Сообщений: 104
|
|
1 | |
Представление типа как signed/unsigned26.03.2016, 09:30. Показов 1535. Ответов 4
Метки нет (Все метки)
Подскажите, пожалуйста, если для представления типа данных как signed отвечает старший разряд, то как происходит разделение типа данных на signed/unsigned. Например, для представления наименьшего знакового значения типа char используют старший разряд 1000 0000, но как, в каком месте определяется сам тип signed/unsigned?
0
|
26.03.2016, 09:30 | |
Ответы с готовыми решениями:
4
Определение диапазонов переменных типов char, short, int и long (как signed, так и unsigned) Разобрать код с signed unsigned Результат сравнения signed и unsigned Вывод на экран значений signed от unsigned |
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,915
|
|
26.03.2016, 10:22 | 2 |
Никак и ни в каком.
Данные в памяти традиционной современной массовой платформы хранятся в виде последовательностей безличных нулей и единиц, не обладающих никаким дополнительными свойствами. Как роман "Война и мир" в памяти принципиально ничем не отличается от картины "Девочка с персиками", так и беззнаковый char в памяти ничем не отличается от знакового char или от массива double . Все это - лишь нули и единицы в памяти.Различия будут возникать только на уровне интерпретации этих безличных нулей и единиц обрабатывающим их кодом. Обрабатывающий код должен знать, где в памяти лежит "Война и мир", где - "Девочка с персиками", где - беззнаковый char , где знаковый char , а где - массив double . И, соответственно, обрабатывающий код должен применять правильные операции, заточенные под правильные типы данных при работе с каждым участком памяти.Причем правильность в данном случае - понятие относительное. Эту правильность никто не контролирует. Никто вам не запрещает, при необходимости, интерпретировать значение типа signed char в памяти как значение типа unsigned char . Или массив double как массив unsigned char . Справедливости ради надо заметить, что существуют экзотические (и не очень) архитектуры и платформы, в которых в памяти хранятся не только данные, но еще и специальные тэги, описывающие тип хранимых данных и то, что с ними можно/нельзя делать. Но такие архитектуры и платформы массового распространения не получили. Советский "Эльбрус" как раз является примером тэговой архитектуры.
4
|
59 / 5 / 0
Регистрация: 03.11.2015
Сообщений: 104
|
|
26.03.2016, 10:47 [ТС] | 3 |
TheCalligrapher, значит, чтобы ответить на свой вопрос нужно знать устройство компилятора?
0
|
Вездепух
12807 / 6680 / 1799
Регистрация: 18.10.2014
Сообщений: 16,915
|
|
26.03.2016, 10:53 | 4 |
Знать для чего именно?
Когда речь идет о более-менее строго типизированных языках программирования, то заботу об правильной интерпретации каждой области памяти (т.е. о контроле соответствия типов) берет на себя компилятор. Вы объявили переменную типа double - компилятор для работы с соответствующим кусочком памяти генерирует машинные инструкции, соответствующие типу double . Вы объявили переменную типа signed char - компилятор работает с соответствующим кусочком памяти через инструкции, соответствующие signed char . И т.д.Вот, собственно, и все. А уж что еще вам надо знать - зависит.
4
|
20 / 10 / 2
Регистрация: 07.03.2016
Сообщений: 211
|
|
29.03.2016, 06:13 | 5 |
TheCalligrapher, осмелюсь сообщить, что это ваше "Советский "Эльбрус", -
-это примерно то же, как если бы напечатать "Капиталистический Гринвичский Меридиан"). ---- вы завидуете, что система Эльбрус умеет аппаратно разбирать стек?) *просто интересна причина акцентуации на "Советский"
0
|
29.03.2016, 06:13 | |
29.03.2016, 06:13 | |
Помогаю со студенческими работами здесь
5
Каким бы стоило сделать тип char по умолчанию — signed или unsigned? Ошибка W8012: "Comparing signed and unsigned values" Тип signed char и unsigned char Пояснить суть модификатора типа unsigned Ошибка при вводе переменной типа unsigned short Перевод массива unsigned char в число типа int Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
|
Как определить, содержит ли строка подстроку в JavaScript
InfoMaster 19.01.2025
При разработке веб-приложений часто возникает необходимость выполнять различные операции со строками, среди которых особое место занимает поиск подстрок. JavaScript предоставляет несколько встроенных. . .
|
Что такое метаклассы в Python
InfoMaster 19.01.2025
Метаклассы в Python представляют собой один из самых мощных и одновременно сложных механизмов языка, позволяющий программистам контролировать процесс создания классов. По своей сути, метакласс. . .
|
Как удалить свойство из объекта JavaScript
InfoMaster 19.01.2025
В современной веб-разработке объекты JavaScript играют фундаментальную роль в организации и структурировании данных. Они представляют собой контейнеры, которые хранят связанные данные и. . .
|
Какая разница между String и string в C#
InfoMaster 19.01.2025
В языке программирования C# существует интересная особенность: для работы со строками можно использовать как String, так и string. Эта двойственность часто вызывает вопросы у разработчиков, особенно. . .
|
Как в Git откатить репозиторий к предыдущему коммиту
InfoMaster 19.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, предоставляя разработчикам мощные инструменты для управления изменениями в. . .
|
Как работают замыкания (closure) в JavaScript
InfoMaster 19.01.2025
В мире современной веб-разработки замыкания (closures) представляют собой один из фундаментальных концептов языка JavaScript, который часто вызывает затруднения у начинающих разработчиков, но при. . .
|