kako provjeriti negativnu cijelu vrijednost u pythonu


Odgovor 1:

Char u C i C ++ zajamčeno je najmanja jedinica adresirane memorije, koja se obično naziva bajt, iako je danas bajt definiran kao 8 bitova. U C / C ++ char može biti veći od 8 bita, ali! Nikad! manji. (Broj bitova možete dobiti uključivanjem ograničenja.h (usponi na C ++) i korištenjem makronaredbe CHAR_BIT).

Char se može koristiti kao normalni cijeli broj, jednako kao int, long i drugi takvi tipovi, osim dvije razlike.

  1. char može biti potpisan ili nepotpisan ako ne navedete njegov znak.
  2. char, potpisani char i nepotpisani char tri su zasebne vrste.

Ako želite koristiti char za aritmetiku, trebali biste navesti znak da izbjegnete "zabavna" iznenađenja prilikom prenošenja programa ili čak samo ažuriranja kompajlera.

Baš kao i kod ostalih vrsta cijelih brojeva, i vi ćete morati biti oprezni pri preljevima i preljevima cijelih brojeva, s char zbog svoje male veličine (nepotpisani 0 do 255, s potpisima -128 do 127 na većini sustava).

U C / C ++ da biste char ispisali kao broj umjesto kao znak, prvo biste ga trebali prebaciti na cijeli broj. (C / C ++)

nepotpisani znak n = 82;n * = 2;// Cprintf ("% d", (int) n);// C ++std :: cout << (int) n;

Ako funkcija uzima int referencom i želite proslijediti znak, morat ćete napraviti privremeni int. (C ++)

int tmp;std :: cin >> tmp;potpisani znak n = tmp;

Ista logika vrijedi i za pokazivače. (C)

int tmp;scanf ("% d", & tmp);potpisani znak n = tmp;

No, također ćete morati neprestano provjeravati ne vraćaju li se vraćene vrijednosti char varijablom, pa vjerojatno u većini slučajeva nije vrijedno dodatnog napora. Za izračune biste gotovo uvijek trebali koristiti uobičajenije vrste (poput int, long itd.).


Odgovor 2:

char je -128 .. + 127 raspon cijeli broj. Samo mu dodijelite vrijednost i napravite normalnu aritmetiku s njom.

Problem koji imate je taj što ga sve funkcije ispisa prilikom primanja znaka tumače kao kodnu točku koja predstavlja glif, umjesto da ga pretvori u tekst i učinit će ispis cijelog broja.

Ali to možete jednostavno prevladati lijevanjem char u int prije ispisa.

Na primjer, u C ++

char a {5};char b {-3};automatski c = a + b; // c je char {2};cout << int (c) << endl; // ispisat će 2

Ako imate int i želite ga dodijeliti znaku, samo upotrijebite redoviti zadatak na kraju bacajući tip da ga "suzite".

int i {50};char c {};c = char (i);