Rumah > pembangunan bahagian belakang > C++ > Mengapa '0123' dicetak sebagai '83' dalam C/C ?

Mengapa '0123' dicetak sebagai '83' dalam C/C ?

DDD
Lepaskan: 2024-11-14 18:24:02
asal
979 orang telah melayarinya

Why does

Memahami Pemalar Berangka dengan Sifar Utama dalam C/C

Dalam C/C , pemalar berangka boleh diawali dengan '0' di hadapan untuk menunjukkan asas atau sistem nombor mereka. Awalan ini menandakan bahawa pemalar ialah nilai perlapanan (asas 8).

Apabila anda menggunakan '0123' sebagai pemalar integer, pengkompil mentafsirkannya sebagai nilai perlapanan. Dalam sistem nombor perlapanan, '123' mewakili nilai perpuluhan 83 (881 3). Oleh itu, apabila anda mencetak nilai, ia mengeluarkan 83 dan bukannya 123.

Tingkah laku ini konsisten merentas pengkompil C dan C, seperti GCC. Ia juga digunakan pada pemalar titik terapung yang diawali dengan '0', walaupun peraturan penukaran mungkin berbeza sedikit.

Untuk menentukan secara eksplisit asas pemalar berangka, anda boleh menggunakan awalan berikut:

  • '0': Oktal (asas 8)
  • '0x' atau '0X': Perenambelasan (asas 16)
  • Tiada awalan: Perpuluhan (asas 10)

Sebagai contoh, untuk mewakili nilai perpuluhan 123 sebagai pemalar perlapanan, anda akan menggunakan '0123'. Sebaliknya, untuk mewakili nilai perlapanan 83 sebagai pemalar perpuluhan, anda akan menggunakan 83.

Atas ialah kandungan terperinci Mengapa '0123' dicetak sebagai '83' dalam C/C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan