Rumah >pembangunan bahagian belakang >C++ >Mengapa Menolak '0' daripada Char dalam C Mengembalikan Nilai Berangkanya?
Menolak '0' daripada Char dalam C Mengembalikan Nilai Berangkanya
Anda mungkin terkejut apabila mendapati bahawa menolak '0' daripada Kod aksara ASCII menghasilkan nilai berangka yang diwakili oleh aksara itu.
Pemahaman Pengekodan ASCII
Untuk memahami sebab ini berfungsi, adalah penting untuk mengetahui tentang pengekodan ASCII. ASCII memberikan setiap aksara nilai berangka yang unik, antara 0 hingga 127. Nilai berangka yang sepadan dengan aksara dikenali sebagai kod ASCIInya.
Sebagai contoh, aksara '0' mempunyai kod ASCII 48, '1' mempunyai kod ASCII 49, dan seterusnya. Ini bermakna aksara '0' hingga '9' mempunyai kod ASCII dalam julat 48 hingga 57.
Perwakilan Numerik Aksara
Sebab menolak '0' daripada kod aksara mengembalikan nilai berangka kerana kod ASCII untuk digit '0' hingga '9' adalah berjujukan. Menolak '0' daripada mana-mana kod ini akan mengalih keluar pengimbangan digit daripada jujukan, hanya meninggalkan nilai berangka sebenar.
Sebagai contoh, menolak '0' daripada '9' (kod ASCII 57) menghasilkan 9, sejak 57 - 48 = 9.
Contoh
Pertimbangkan kod berikut:
char c = '9'; int x = (int)(c - '0');
Di sini, kita mempunyai aksara '9' yang disimpan dalam pembolehubah c. Menghantar perbezaan antara c dan '0' kepada integer menggunakan (int) memberikan nilai berangka '9', iaitu 9, kepada pembolehubah x.
Kesimpulan
Kesimpulannya, penolakan '0' daripada kod ASCII aksara dalam C menghasilkan nilai berangka yang diwakili oleh aksara kerana kod ASCII untuk digit '0' hingga '9' adalah berjujukan dan mewakili nilai berangka secara langsung.
Atas ialah kandungan terperinci Mengapa Menolak '0' daripada Char dalam C Mengembalikan Nilai Berangkanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!