|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 118
|
|
Тип char.Signed/unsigned.Отличие типов данных.30.08.2009, 22:17. Показов 37852. Ответов 51
Метки нет (Все метки)
Вопрос немного может быть не туда... Прошу прощения. Пишу прошивку к контроллеру, на С. Интересует отличие типов данных. ДОпустим есть тип char и тип unsigned char. Первый -128...127, а второй 0...255 соответственно. Оба типа занимают 8 бит. В чем разница?? Или разница в обработки типов библиотеками(к примеру) или правильном распозновании например кодировки ASCII ну и т.д. Интересует разница на битовом уровне. Т.е. по идее и там и там 8 бит..
Вопрос появился, когда мне необходимо было считать байт из регистра. Для этого я завел переменную(допустим t) типа char, считал байт. Если я правильно понимаю t фактически это тоже байт памяти, поэтому при считывании регистра в эту переменную t у меня все эти 8 бит просто дублируются. Вопрос что бы изменилось если бы я переменную обозначил типа unsigned char?? И вообще пишут что тип char это символ, а мне не очень понятно ГДЕ/ЧТО/КАК этот символ. И как СИМВОЛ отличается от типа ИНТЕДЖЕР например(кроме того что int - 16 бит)??
0
|
|
| 30.08.2009, 22:17 | |
|
Ответы с готовыми решениями:
51
Значения типов данных (signed, unsigned, char)
Надо перевести переменную типа unsigned char* в signed int и обратно |
|
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 447
|
|||
| 31.08.2009, 13:42 | |||
|
О "модуле" целого в 7 битах - перечитайте собственную цитату, про "модуль" там ни слова! если знаковое целое из байта, то -1(10)==11111111(bit) Для будущего программиста, следует иметь более тупой склад мышления и не-придумывать свойств, объектов и параметров, о которых не было речи в документации или техзадании. ![]() Добавлено через 8 минут - компилятор тоже проблем не увидит - главное осознавать действие и понимать - человек открыл тред с вопросом, ему и объяснили - а вот у компилятора такого понимания нет
0
|
|||
|
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
|
|
| 31.08.2009, 13:58 | |
|
Sorry!
0
|
|
|
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
|
||
| 31.08.2009, 17:02 | ||
|
Приведу отрывок из книги Крупника "Изучаем Си", может кому нибудь будет полезно.
0
|
||
|
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 447
|
|
| 31.08.2009, 17:13 | |
|
RNT, всё правильно. Теперь обратите внимание на то, что назвали "модулем"
Из картинки видно, что ваш "модуль" -8 равен 000 !!!!
0
|
|
|
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
|
|
| 31.08.2009, 17:16 | |
|
Насчет модуля я выразился некоректно , извиняюсь
0
|
|
|
62 / 62 / 13
Регистрация: 27.01.2009
Сообщений: 279
|
||||||||
| 06.11.2010, 22:45 | ||||||||
|
5 - 4 = 5 + (-4) -> 0000 0101 + 1111 1100 (дополнительный код для 4) = 0000 0001 Добавлено через 35 минут
sig_i это будет значение -1 (в двоичной форме .... 1111 1111 1111 1111 1111 1111 1111 1111), а для unsig_i = 255 (0000 0000 0000 0000 0000 0000 1111 1111), то есть как он решает что в одном случае надо просто нули добавить слева, а в другом единицы?
0
|
||||||||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 07.11.2010, 01:30 | ||
|
1
|
||
|
62 / 62 / 13
Регистрация: 27.01.2009
Сообщений: 279
|
||
| 07.11.2010, 14:41 | ||
|
еще вопрос - этот признак это просто бит? и где он храниться?
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 08.11.2010, 09:30 | |
|
Тут некоторые товарищи так уверенно утверждали, что в типе char 8 бит, однако в стандарте размер типа char не закреплен. У Страуструпа сказано только, что «практически всегда на объект типа char отводится 8 бит». Т.е. 8 бит нам никто не гарантировал.
0
|
|
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 08.11.2010, 10:22 | ||
0
|
||
|
|
||||||||||||
| 08.11.2010, 11:20 | ||||||||||||
Вот, вроде объяснил) Если что не понятно, спрашивайте! Добавлено через 5 минут про дополнительный код: не буду приводить код на АСМе, вот его суть на C :
1
|
||||||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 08.11.2010, 15:13 | ||
|
1
|
||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 08.11.2010, 17:04 | ||
|
0
|
||
|
62 / 62 / 13
Регистрация: 27.01.2009
Сообщений: 279
|
|||||||
| 08.11.2010, 18:56 | |||||||
:ch = word_1 + word_2 =>
0
|
|||||||
|
|
|||||||||||||||||
| 09.11.2010, 10:51 | |||||||||||||||||
вот как это выгдядет на ассемблере (создатели компиляторов закладывают подобный код для вывода чисел, ну может более проффесионально написан, хотя этот тоже не плох)
Если еще остались вопросы - спрашивайте, отвечу (если смогу)))
0
|
|||||||||||||||||
|
62 / 62 / 13
Регистрация: 27.01.2009
Сообщений: 279
|
||
| 09.11.2010, 21:09 | ||
|
1. это получение числа (например ch = -20 - 30) 2. вывод на экран 1. я так понимаю все сводиться к прибавлению и мы получаем ch = -20 + (- 30) и АЛУ выполняет вот такие действия ch = 11101100(-20 в доп. коде) + 11100010(-30 в доп. коде) я правильно понимаю? и в итоге на выходе процессора мы получаем 11001110
0
|
||
|
|
|||||||||||||||||||||||||||||||||
| 10.11.2010, 14:33 | |||||||||||||||||||||||||||||||||
Давайте сначала: речь изначально шла о знаковых/беззнаковых типах. Так вот - таких типов нет, они существуют только в контексте языков C/C++ (ну о других мы сейчас просто не говорим), в действительности же их нет. В языках C/C++ это просто условность для удобства работы программиста (ну и потому что программист не имеет контроля над процессом вывода на устройство вывода) Таким образом вот этот код:
резюмируем вышесказнное
Вроде объяснил
2
|
|||||||||||||||||||||||||||||||||
|
64 / 64 / 12
Регистрация: 05.07.2010
Сообщений: 219
|
||||||
| 10.11.2010, 18:52 | ||||||
|
Такой вопрос:
В первом случае(1) печатается символ, а во втором(2) код символа. Что в данном случае означает unsigned?
0
|
||||||
|
62 / 62 / 13
Регистрация: 27.01.2009
Сообщений: 279
|
||||
| 10.11.2010, 19:55 | ||||
|
или Сишный printf("%d", ch)), то символы код которых больше 127 будут отрицательными -128..127 еще важный момент - помните что char это фактически однобайтовый int и символы храняться в нем в виде кодов(в кодировке ASCII) Добавлено через 12 минут Вопрос по вашему коду, что это за объявление? то есть что это символ/код ![]() над наверно с асмом побаловаться чтоб меньше таких вопросов стояло
0
|
||||
| 10.11.2010, 19:55 | |
|
Приведение типов unsigned char[2] to unsigned char [64] 8-битовый тип signed char может представлять значения от -128 до 127 Signed/Unsigned Сложение signed и unsigned Сравнение чисел unsigned и signed Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|