Új hozzászólás Aktív témák
-
kingabo
őstag
válasz
Szőkecica
#2412
üzenetére
"Azt hittem hogy az ami előtt van egy - jel :-)"
De kell valahogy azt a '-' jelet tárolnod. Akkor próbálom visszafelé. Van a "sima" char, ami -128 és 127 közötti értéket vehet fel. Ez binárisan úgy van megvalósítva (nagy vonalakban, részletesebben kettes komplemens szám ábrázolás), hogy van 8db bited, az első bit elmegy az előjel bitnek, a maradék 7 biten pedig lehet tárolni 2^7 értéket vagyis 128-at (a pozitív oldalon azért csak 127-ig megy, mert a 128-adik érték a 0
). Ha a char elé odaírod, hogy unsigned, vagyis unsigned char ertek;, akkor előjel nélküli változót deklarálsz. Ekkor az előjelnek fenntartott bit is felhasználható értékes bitként, vagyis 2^8-an számot tudsz tárolni. Mivel mindkét esetben 8biten vagyis 1 byte-on tárolod az adatokat, ezért a sizeof ugyanazt a méretet fogja megadni. Ugyanez érvényes az pl az int-nél is, csak ott 1byte, helyett ált 4byte-on tárolod az adatokat.Ha próbálgatni akarsz: deklarálj egy előjeles és egy előjel nélküli char-t. Az előjelesnek adj egy pozitív számot értékül, aztán kasztolással* add értékül a változót az előjel nélkülinek. Ugyanezt próbáld ki negatív számmal is, aztán szerep cserével, 127-nél nagyobb értéket adj az előjel nélkülinek és ezt a változót add értékül az előjelesnek. Ja és természetesen minden értékadás pár után írasd is ki, hogy lásd a különbségeket.
*kasztolás: egy adott típusú változót "átalakítani" másik típusúvá. (kisebb-ről nagyobbra, tehát pl: char-ról int-re megkötés nélkül lehet, de visszafelé nagy valószínűséggel adat vesztés lesz, mivel az int-be jóval nagyobb számok is beleférnek)
Pl: char elojeles = -5;
unsigned char elojelnelkuli = =(unsigned char) elojeles;Bocs ennél érthetőbben nem tudom elmagyarázni.
Ha valami kimaradt, vagy nem érthető, akkor kérdezz nyugodtan. 
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Béta iOS-t használók topikja
- Kerékpárosok, bringások ide!
- Kormányok / autós szimulátorok topikja
- Mozilla Thunderbird
- Konteó topic
- Gumi és felni topik
- Kedvenc zene a mai napra
- PlayStation 5
- Rejtély az űr csendjében: ezért kellett kimenekíteni az Űrállomás csapatát
- Samsung Galaxy A56 - megbízható középszerűség
- További aktív témák...
- Asus TUF A15 FA506NFR 15.6" FHD IPS Ryzen 7 7435HS RTX 2050 16GB 512GB NVMe magyar vbill gar
- MacBook Air 2017 dobozos megkímélt kiváló akku
- Csere-Beszámítás! Lenovo Legion 15 15ACH6 ! R5 5600H / 3050Ti / 16GB DDR4 / 512 SSD
- Daruszentmiklós laptop/konzol/kontroller szerviz
- Eladó bontatlan Kingston NV3 1TB NVMe SSD
- Samsung Galaxy A56 5G 8/256GB fehér használt, karcmentes 6 hónap garancia
- iPhone 16 Pro Max 156GB Fekete Titán - 27% ÁFA (0397)
- AKCIÓ! ASUS H110M i5 6500 8GB DDR4 120GB SSD 500GB HDD GTX 1050Ti 4GB Zalman T3 Plus NBASE 600W
- Lenovo ThinkStation P300 Workstation,i7-4790,8GB DDR3,500GB SATA3 HDD,2GB VGA,WIN11
- Új MSI 16 Vector QHD+ 240Hz Ultra 9 275HX 24mag 32GB DDR5 1TB SSD Nvidia RTX 5070 8GB Win11 Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
De kell valahogy azt a '-' jelet tárolnod. Akkor próbálom visszafelé. Van a "sima" char, ami -128 és 127 közötti értéket vehet fel. Ez binárisan úgy van megvalósítva (nagy vonalakban, részletesebben kettes komplemens szám ábrázolás), hogy van 8db bited, az első bit elmegy az előjel bitnek, a maradék 7 biten pedig lehet tárolni 2^7 értéket vagyis 128-at (a pozitív oldalon azért csak 127-ig megy, mert a 128-adik érték a 0
). Ha a char elé odaírod, hogy unsigned, vagyis
Ha valami kimaradt, vagy nem érthető, akkor kérdezz nyugodtan. 
