de-vraag
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
Landon Kuhn
Landon Kuhn
Question

Čo je to unsigned char?

Na čo sa v jazyku C/C++ používa unsigned char? Čím sa líši od bežného znaku?

452 2008-09-16T18:05:18+00:00 3
Kirill Kobelev
Kirill Kobelev
Edited question 23 december 2016 в 11:38
Programovanie
c++
c
char
This question has 1 odpoveď in English, to read them log in to your account.
Todd Gamblin
Todd Gamblin
16 september 2008 в 6:08
2008-09-16T18:08:55+00:00
Viac na
Zdroj
Upraviť
#8465414

To závisí od implementácie, pretože štandard C nedefinuje podpísanosť znakov char. V závislosti od platformy môže byť char signed alebo unsigned, takže ak to závisí od vašej implementácie, musíte explicitne požiadať o signed char alebo unsigned char. Ak máte v úmysle reprezentovať znaky z reťazcov, použite len char, pretože to bude zodpovedať tomu, čo vaša platforma vloží do reťazca.

Rozdiel medzi signed char a unsigned char je taký, ako by ste očakávali. Na väčšine platforiem bude signed char 8-bitové dvojkové číslo v rozsahu od -128 do 127 a unsigned char bude 8-bitové celé číslo bez znamienka (0 až 255). Všimnite si, že štandard NEvyžaduje, aby typy char mali 8 bitov, iba aby sizeof(char) vracal 1. Počet bitov v char môžete zistiť pomocou CHAR_BIT v súbore limits.h. Dnes však existuje len málo platforiem, ak vôbec nejaké, kde to bude niečo iné ako 8.

Existuje pekné zhrnutie tejto problematiky tu.

Ako už spomenuli iní, čo som to napísal, je lepšie používať int8_t a uint8_t, ak naozaj chcete reprezentovať malé celé čísla.

Stefan  van den Akker
Stefan van den Akker
Edited answer 2 december 2014 в 5:57
84
0
 jbleners
jbleners
16 september 2008 в 6:12
2008-09-16T18:12:20+00:00
Viac na
Zdroj
Upraviť
#8465416

Ak chcete použiť znak ako malé celé číslo, najbezpečnejší spôsob je použiť typy int8_t a uint8_t.

Yu Hao
Yu Hao
Edited answer 16 august 2013 в 12:31
13
0
James Hopkin
James Hopkin
16 september 2008 в 6:12
2008-09-16T18:12:16+00:00
Viac na
Zdroj
Upraviť
#8465415

signed char má rozsah -128 až 127; unsigned char má rozsah 0 až 255.

char bude v závislosti od kompilátora ekvivalentný buď signed char alebo unsigned char, ale je to samostatný typ.

Ak používate reťazce v štýle C, použite len char. Ak potrebujete použiť znaky na aritmetiku (dosť zriedkavo), kvôli prenositeľnosti explicitne špecifikujte signed alebo unsigned.

James Hopkin
James Hopkin
Edited answer 7 december 2015 в 3:09
5
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
365
Registered pred dňom
2
True Image
Registered pred dňom
3
archana agarwal
Registered pred 3 dňami
4
Maxim Zhilyaev
Registered pred 6 dňami
5
adambotsfford adambotsfford
Registered pred týždňom
DE
EL
ES
FR
ID
IT
JA
KO
NL
PT
RU
SK
ZH
© de-vraag 2022
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora