tip char vlivanje v unsigned int (v C)

E

emresel

Guest
Živjo vsem, jaz sem poskušal prikazati char vrednost, kot unsigned integer na zaslonu;
Code:
 char = 255; unsigned int b; / / Potem Želim natisniti na zaslonu, b = (unsigned int); printf ("vrednost je% d so podpisali,% u kot unsigned \ n", b, b);
proizvodnja;
je vrednost -1 ki so jo podpisali, kot unsigned 4294967295
"vrednost je -1 so podpisali "je pričakovani rezultat, saj je -1 255 šteje kot znak številko. Zakaj se ne morem videti "255 kot unsigned"? Zakaj 4294967295 izpisal na zaslon? Kako lahko to dosegli? Thanks
 
Hi emresel Ker, ko ste tip je oddanih na unsigned int, je da se ga spremeni, da največji doseg. podpisana char območje je -128 do 127, ali unsigned char je od 0 do 255. Isto velja za unsigned int razponu od 0 do 2 ^ 32. Zato je da se ga spremeni, da največjo vrednost to je 2 ^ 32. poskusite to char c = 250 poskušajo spremeniti to, da unsigned int, boste dobili (2 ^ 32) -5. Upam, da to vam bo pomagal.
 
Ne razumem, zakaj bi prevajalnik v pc obnašajo, kot je ta, v avrgcc na primer deluje v redu in je vrednost enaka (100 ali 0x64 ali 0x0064) in za negativno število (-100 ali 0x9C ali 0xFF9C)
Code:
 hlapnih char c = 100; hlapne int cc; cc = (unsigned int) c / / ali cc = c
rezultat je tudi enak za
Code:
 hlapnih podpisana char c = 100; hlapnih podpisala int cc; cc = (podpisan int) c / / ali cc = c
ali
Code:
 hlapnih podpisana char c = -100; hlapnih podpisala int cc; cc = (podpisan int) c / / ali cc = c
Alex
 
Hi yanamaddinaveen; Pravzaprav gre se mi čudno, v PC je pač "1" padding na levi strani številko, da ga spremenite v nepodpisan. Kot ste rekli, se zdi, to je 250, kot char (v bin) 11111010, 250, kot UINT (v bin) 111111111111111111111111 11111010 , kdaj tip oddanih; Ampak to daje namig, da me, sem prvič tipa oddanih char na nepodpisane char, nato pa nepodpisanih char na unsigned int. Potem je delal!
Code:
 b = (unsigned int) ((unsigned char));
Thanks
 
Če je temu tako potem je char "a" spremenljivke v vašem primeru velja podpisana char, zato boste dobili napako. Moja IDE je nastavitev in char pomeni nepodpisane char, ampak mislim, da je privzeto vedenje GCC char pomeni podpisana char. Ste že poskusili z unsigned char a = 255?
 
Hi, Ja alexan_e; Kot sem opredeliti "a", kot uchar potem ni problema. Prav tako sem poskušal, kot je ta kasneje. Toda v primeru, lahko dobim "char" vrnejo iz knjižnice. To je tako, kot želim, da bi poskušali vrsto oddanih char na UINT.
 

Welcome to EDABoard.com

Sponsor

Back
Top