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

Mengapa Menolak '0' daripada Aksara Mendedahkan Nilai Berangkanya dalam C?

DDD
DDDasal
2024-12-08 11:40:11590semak imbas

Why Does Subtracting '0' from a Character Reveal its Numeric Value in C?

Menyahkod Nilai Char: Mengapa Menolak '0' Mendedahkan Perwakilan Angka

Persoalan yang membingungkan timbul: mengapa menolak '0' daripada aksara dalam C mendedahkan nilai angka yang diwakilinya?

Untuk merungkai enigma ini, mari kita mendalami bidang ASCII (American Standard Code for Information Interchange), yang memberikan kod berangka kepada setiap aksara. '0' memegang kedudukan pertama dalam jujukan angka ini, dengan aksara seterusnya diberi nilai yang lebih tinggi secara berperingkat.

Sebagai contoh, '9' mewakili nilai angka 57, manakala '0' sepadan dengan 48. Dengan menolak '0 ' daripada aksara, kita pada asasnya mengira perbezaan antara kod ASCIInya dan kod ASCII bagi '0'.

Pertimbangkan contoh: char c = '9'; int x = (int)(c - '0');
Di sini, '9' mempunyai kod ASCII 57. Menolak '0' (yang mempunyai kod ASCII 48) menghasilkan 57 - 48 = 9, yang adalah tepat nilai berangka yang diwakili oleh '9'.

Jadual ASCII berikut seterusnya menggambarkan perkara ini konsep:

Character ASCII Code
'0' 48
'1' 49
'9' 57

Dengan menolak '0' daripada sebarang aksara, kita boleh menyahkod nilai berangka yang diwakilinya dengan berkesan, teknik yang biasa digunakan dalam pelbagai aplikasi pengaturcaraan.

Atas ialah kandungan terperinci Mengapa Menolak '0' daripada Aksara Mendedahkan Nilai Berangkanya dalam C?. 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