Rumah >pembangunan bahagian belakang >C++ >Mengapakah Menolak '0' daripada Nilai ASCII Aksara dalam C Memberikan Setara Numeriknya?

Mengapakah Menolak '0' daripada Nilai ASCII Aksara dalam C Memberikan Setara Numeriknya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-10 12:31:11283semak imbas

Why Does Subtracting '0' from a Character's ASCII Value in C Give Its Numeric Equivalent?

Memahami Penukaran Char-to-int dalam C: Mengapa Menolak '0' Menghasilkan Nilai Numerik

Dalam pengaturcaraan C, sesuatu yang unik operasi yang melibatkan aksara dan integer boleh menimbulkan rasa ingin tahu: menolak '0' daripada kod ASCII bagi char menghasilkan nombor yang diwakili oleh aksara itu. Tingkah laku yang membingungkan ini memerlukan penerokaan untuk memahami logik asasnya.

Kuncinya terletak pada perwakilan aksara dalam komputer. Setiap aksara diberikan nilai berangka, yang dikenali sebagai kod ASCIInya, yang menentukan kedudukannya dalam set aksara ASCII. Sebagai contoh, aksara '0' sepadan dengan kod ASCII 48, manakala '9' sepadan dengan kod 57.

Operasi menolak '0' daripada kod ASCII secara berkesan membuang nilai berangka yang dikaitkan dengan ' watak 0'. Ini kerana '0' ialah aksara pertama dalam set ASCII, dengan kod 48. Akibatnya, penolakan 48 daripada mana-mana kod ASCII lain secara berkesan menurunkan nilai berangka sebanyak 48, mendedahkan nombor asal yang diwakili oleh aksara tersebut.

Sebagai contoh, apabila kita menolak '0' daripada kod ASCII '9' (57), kita mendapat 57 - 48 = 9, yang sepadan dengan nombor yang diwakili oleh aksara '9'.

Mekanisme ini menyediakan cara yang mudah untuk menukar perwakilan aksara nombor kepada rakan nombor mereka, memudahkan pelbagai operasi pengaturcaraan yang memerlukan pengendalian berangka.

Atas ialah kandungan terperinci Mengapakah Menolak '0' daripada Nilai ASCII Aksara dalam C Memberikan Setara Numeriknya?. 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