|
касаткО
51 / 51 / 4
Регистрация: 01.10.2011
Сообщений: 227
|
|
Signed/Unsigned21.03.2012, 19:40. Показов 26496. Ответов 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
|
||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||
| 22.01.2021, 00:37 | |||
bool, потому что компилятор заранее знает, что bool имеет только два допустимых значения. Это может весьма активно использоваться в оптимизации.
0
|
|||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||
| 22.01.2021, 00:48 | |||
|
0
|
|||
| 22.01.2021, 01:26 | |||
|
Да интересно это всё казалось бы вопрос для школьника а ответ будешь годами искать.
0
|
|||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
||||
| 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
|
|
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
||
| 22.01.2021, 11:20 | ||
|
1. Как вы сами сказали, эта возможность была бы доступна в одинаковой мере всем трансляторам языков программирования, а не только какому-то волшебному "ассемблеру". 2. В рамках нашей вселенной на текущем этапе ее существования такая аппаратная архитектура являлась бы экзотической. Потому говорить о таких возможностях в огульном контексте, без привязки к этой конкретной экзотической архитектуре, было бы странно.
0
|
||
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|
| 22.01.2021, 12:17 | |
|
0
|
|
|
|
|
| 22.01.2021, 12:46 | |
|
0
|
|
|
Вездепух
13239 / 6871 / 1827
Регистрация: 18.10.2014
Сообщений: 17,417
|
|||
| 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 и обратно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|