Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

Символ со знаком. Символ без знака.   Найти похожие ветки 

 
Карелин Артем ©   (2004-04-08 15:11) [0]

char и unsigned char оказывается совсем разные вещи в Ц. Отличаются старшим байтом на 52 процессоре.


 
SPeller ©   (2004-04-08 15:58) [1]

Старший байт в char ?? :-)))


 
Polevi ©   (2004-04-08 16:09) [2]

:)


 
Anatoly Podgoretsky ©   (2004-04-08 16:14) [3]

А чего смеять, в зависимости от компилятора и платформы это может быть 8, 16, 32 бита со знаком и без. Отддано на откуп разработчикам, по крайней мере это было справедливо для Си, не знаю как для Си++


 
Карелин Артем ©   (2004-04-09 13:02) [4]

SPeller ©   (08.04.04 15:58) [1]
Да, битом.


 
KSergey ©   (2004-04-09 13:26) [5]

А в каком смысле "Отличаются старшим битом" (с корректировкой описки)?? Что значит отличаются??


 
Карелин Артем ©   (2004-04-09 13:36) [6]

А в том, что логическое умножение на 127 char и unsigned char дает разные результаты.


 
Verg ©   (2004-04-09 14:04) [7]


> Карелин Артем ©   (09.04.04 13:36) [6]
> А в том, что логическое умножение на 127 char и unsigned
> char дает разные результаты.


Например?


 
Карелин Артем ©   (2004-04-09 14:17) [8]

Чет опять опечатался 127 вместо 128 написал.
Это на проце Atmel AT80S8252 зависит от типа переменной с:

  unsigned char c;
   c=getchar();
****************
   if ((c&128) != (P2&128))  {
           printf ("7\n");
         }


 
VMcL ©   (2004-04-09 14:41) [9]

>>Карелин Артем ©  (09.04.04 14:17) [8]

Здесь нет умножения. Только побитовое И.


 
Карелин Артем ©   (2004-04-09 14:49) [10]

VMcL ©   (09.04.04 14:41) [9]
Ну что, не у меня одного сегодня пятница. http://psi-logic.narod.ru/bool/bool4.htm однако.


 
KSergey ©   (2004-04-09 15:03) [11]

> [8] Карелин Артем ©   (09.04.04 14:17)

Вы здесь первый день??


 
VMcL ©   (2004-04-09 15:03) [12]

>>Карелин Артем ©  (09.04.04 14:49) [10]

Побитовое "И" (&) и логическое "И" (&&) различаем?


 
Verg ©   (2004-04-09 15:24) [13]


> char и unsigned char оказывается совсем разные вещи в Ц.


Конечно разные.
Но только вот это

>  if ((c&128) != (P2&128))  {


тут не причем.
Дело тут в твоем кросскомпилере, скорее всего.
А в частности в том, что когда сравниваются две переменных, пусть даже и формально но разных типа, то он приводит их обе к общему соместимому типу, а потом сравнивает. В твоем случае, видимо, к int или к unsigned int

 unsigned char c = 0x80;
 char p = 0x80;
 printf("%d\n", (int) c);
 printf("%d\n", (int) p);



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1081972895
Вадим
2004-04-15 00:01
2004.05.02
Сократить имя файла


1-1082031629
P0tia
2004-04-15 16:20
2004.05.02
Нажатие клавишь


11-1066369188
Ал
2003-10-17 09:39
2004.05.02
Как обработать нажатие F1 на любой форме?


14-1081241892
Doctor_Y
2004-04-06 12:58
2004.05.02
Проблема с INI файлами


14-1081088912
Гаврила
2004-04-04 18:28
2004.05.02
Постоянная работа для программера в Москве





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский