|
касаткО
51 / 51 / 4
Регистрация: 01.10.2011
Сообщений: 227
|
|
Signed/Unsigned21.03.2012, 19:40. Показов 26331. Ответов 64
Метки нет (Все метки)
Здравствуйте! Стал изучать ЯП C. Не совсем могу понять, что означает Signed и Unsigned (как я понял означает наличие знака(+ либо -) или его отсутствие). Не мог ли бы доходчиво объяснить, что это означает и в какой ситуации используется.
0
|
|
| 21.03.2012, 19:40 | |
|
Ответы с готовыми решениями:
64
Сложение signed и unsigned
Сравнение чисел unsigned и signed |
|
|
||
| 21.01.2021, 18:40 | ||
|
Формулировки типа "может хранить от -128 до +127" и "может хранить от 0 до 255" - это условно "формулировки для начинающих". Реальную суть я уже объяснил в посте #14. Хоть signed char, хоть unsigned char представляет собой кусок памяти размером 8 бит. Один от другого не отличается вообще ничем. Разница появляется только после того, как эти 8 бит подают в машинную операцию. Потому как некоторые операции будут трактовать эти 8 бит как знаковые, а некоторые - как беззнаковые
0
|
||
| 21.01.2021, 22:17 | ||
|
0
|
||
|
Неэпический
|
||
| 21.01.2021, 23:11 | ||
|
https://rextester.com/USN62227 https://rextester.com/KDYV60741
0
|
||
|
Модератор
|
|||||||||||
| 21.01.2021, 23:13 | |||||||||||
|
У многих компиляторов есть настройка знаковости char
Если Вам точно нужен signed char или unsigned char(напр. для представления маленьких чисел), эти типы и используйте.
0
|
|||||||||||
| 22.01.2021, 00:15 | ||
|
Добавлено через 13 минут Что быстрее char или bool. С одной стороны bool может хранить только 0 и 1, по сути bool должен читать 1 бит, для того чтобы его прочитать возможно вызывается функция что вызывает нагрузку потому что в стандартном режиме считывается 1 байт т.е. 8 бит, если взять тип char то нагрузку может вызвать то что иногда мы требуем от него вернуть символ и тут тоже может вызываться функция, а иногда записываем число и в этом случае считывается 1 байт-т.е. 8 бит но функция может не вызываться. Я не смотрел как они это зашили может они в обоих случаях кипитят регистры процессора и нагрузка одинакова. Я то учёл бы эти детали насколько мне известно Ассемблер умеет и лучше работает с битами чем с++.
0
|
||
|
Вездепух
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
|
|||
| 22.01.2021, 00:37 | |||
bool, потому что компилятор заранее знает, что bool имеет только два допустимых значения. Это может весьма активно использоваться в оптимизации.
0
|
|||
|
Вездепух
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
|
|||
| 22.01.2021, 00:48 | |||
|
0
|
|||
| 22.01.2021, 01:26 | |||
|
Да интересно это всё казалось бы вопрос для школьника а ответ будешь годами искать.
0
|
|||
|
Вездепух
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
|
||||
| 22.01.2021, 04:25 | ||||
|
1
|
||||
| 22.01.2021, 05:43 | |||
|
0
|
|||
|
|
||
| 22.01.2021, 10:04 | ||
|
В машине нет таких понятий, как "хранить знаковое число" и "хранить беззнаковое число". Машина умеет хранить только абстрактный набор битов и больше ничего. И умеет трактовать один и тот же набор битов как знаковое число или как беззнаковое число C #include <stdio.h> unsigned char c = 255; void foo (signed char *ptr) { if (*ptr < 0) printf ("foo: les\n"); else printf ("foo: grt\n"); } void bar (unsigned char *ptr) { if (*ptr < 0) printf ("bar: les\n"); else printf ("bar: grt\n"); } int main (void) { printf ("%hhd\n", c); printf ("%hhu\n", c); foo (&c); bar (&c); return 0; } Code $ gcc t.c $ ./a.out -1 255 foo: les bar: grt
0
|
||
|
Модератор
|
|
| 22.01.2021, 10:04 | |
|
Если аппаратура и микропрограммное обеспечение ЭВМ предусматривает возможность записи частей машинного слова, меньших байта, то что мешает компилятору C++ или интерпретатору VBA воспользоваться этой возможностью?
Компиляторы и ассемблеры это обычные программы (или устройства) для ЭВМ, создающие объектный код программы для целевой платформы.
0
|
|
|
Вездепух
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
|
||
| 22.01.2021, 11:20 | ||
|
1. Как вы сами сказали, эта возможность была бы доступна в одинаковой мере всем трансляторам языков программирования, а не только какому-то волшебному "ассемблеру". 2. В рамках нашей вселенной на текущем этапе ее существования такая аппаратная архитектура являлась бы экзотической. Потому говорить о таких возможностях в огульном контексте, без привязки к этой конкретной экзотической архитектуре, было бы странно.
0
|
||
|
Вездепух
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
|
|
| 22.01.2021, 12:17 | |
|
0
|
|
|
|
|
| 22.01.2021, 12:46 | |
|
0
|
|
|
Вездепух
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
|
|||
| 22.01.2021, 19:32 | |||
|
То есть вы можете, если вам так захочется, размещать в этом регионе свои булевские переменные. Но никакого "ускорения" от работы с одним битом вместо одного байта вы при этом не получите. Все это делалось не для ускорения, а для обеспечения атомарности битового доступа в многопоточном окружении.
0
|
|||
| 22.01.2021, 19:32 | |
|
Comparison between signed and unsigned integer expressions Значения типов данных (signed, unsigned, char)
[C++ Warning] Unit1.cpp(24): W8012 Comparing signed and unsigned values Надо перевести переменную типа unsigned char* в signed int и обратно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|