Rumah >pembangunan bahagian belakang >C++ >Mengapa Menolak '0' daripada Char dalam C Mengembalikan Nilai Berangkanya?

Mengapa Menolak '0' daripada Char dalam C Mengembalikan Nilai Berangkanya?

Linda Hamilton
Linda Hamiltonasal
2024-12-14 12:32:11655semak imbas

Why Does Subtracting '0' from a Char in C Return Its Numerical Value?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn