Kezdőoldal » Számítástechnika » Programozás » C++-ban miért van signed char...

C++-ban miért van signed char és unsigned char? Mikor használjuk őket?

Figyelt kérdés

2016. máj. 8. 16:19
1 2 3
 11/24 anonim ***** válasza:
Nem igazán értetted a válaszomat ezek szerint. A char egy egész szám. A betű egy egész szám. Azért van charból unsigned és signed mert a CPU-k kétféle egész szám aritmetikát támogatnak: előjeleset és előjel nélkülit. Ennek semmi köze ahhoz hogy a charban tárolt számok betűket is tudnak reprezentálni. Int-ből, short-ból, long-ból és minden más egész szám típusból is két fél van: signed és unsigned. A char miért lenne kivétel? Mert betűként is szoktuk reprezentálni a benne tárolt értéket?
2016. máj. 9. 14:45
Hasznos számodra ez a válasz?
 12/24 A kérdező kommentje:

De igen, értem. Csak azt hittem, hogy van valami egyéb módja, hogy cinnel többjegyű számokat kérhessünk be egy karakter változó értékeként. Erre már én is gondoltam, hogy kell egy köztes int változó, de azt hittem, hogy van valami egyszerűbb módja, amiről én nem tudok.

De nagyon köszi az alapos válaszokat!

2016. máj. 9. 14:50
 13/24 A kérdező kommentje:

Bár ez még így sem jó. Ugyanúgy betűként írja ki az eredményt.


#include <iostream>


using namespace std;


int main() {

unsigned char a;

signed char b;

int c;

cin >> c;

a = (unsigned char) c;

cin >> c;

b = (signed char) c;

cout << a << b << endl;

return 0;

}

2016. máj. 9. 15:07
 14/24 anonim ***** válasza:

Mert a cout a char-t betűként írja ki.

Attól még szám van benne.

2016. máj. 9. 15:34
Hasznos számodra ez a válasz?
 15/24 A kérdező kommentje:

Akkor végül a megoldás. Már ha érdekel valakit.


#include <iostream>


using namespace std;


int main() {

unsigned char a = 120;

signed char b = 100;

int c;

cin >> c;

a = c;

cin >> c;

b = c;

cout << static_cast<int> (a) << static_cast<int> (b) << endl;

return 0;

}

2016. máj. 9. 17:23
 16/24 A kérdező kommentje:
Kezdőértéket nem kell adni, az véletlenül bennemaradt a beillesztett példában.
2016. máj. 9. 17:24
 17/24 anonim ***** válasza:
Mi ezt eddig is tudtuk, hogy így kell, csak azt nem értettük mi értelme. :)
2016. máj. 9. 18:10
Hasznos számodra ez a válasz?
 18/24 A kérdező kommentje:
Gondolom az, hogy nem kell 1 bájtnál többet lefoglalni számok tárolására, ha csak 1 bájtba beleférő számértékeket szeretnék tárolni.
2016. máj. 9. 20:43
 19/24 A kérdező kommentje:
Valami értelme csak van annak, hogy szerepel a c++-ban unsigned és signed char.
2016. máj. 9. 20:44
 20/24 anonim ***** válasza:

Már leírták hol jó ez.

Ha nagyon szűkös a memória, ami manapság nem jellemző, csak nagyon speciális területeken.

Az 1 bájtos számok pedig tényleg nagyon kicsik, ritkán van gyakorlati hasznuk.

2016. máj. 9. 20:49
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!