0x gösterimi kullanan sayılar ne anlama geliyor?


107

0xBir sayıdaki önek ne anlama geliyor?

const int shared_segment_size = 0x6400;

Bir C programından. Ne anlama geldiğini ve özellikle mektubun ne anlama geldiğini hatırlayamıyorum x.


2
"Onaltılı gösterim" arayın
asawyer

2
@asawyer Teşekkürler. "0x" ı onaltılık olarak seçmeden önce, nereden arayacağım konusunda hiçbir fikrim yoktu.
Terry Li

3
Aranıyor 0x prefix C++:) şimdi buraya getiren
Carl Smith

Yanıtlar:


112

İle başlayan değişmezler 0xonaltılık tam sayılardır. (16 tabanı)

Numara 0x6400olduğunu 25600.

6 * 16^3 + 4 * 16^2 = 25600

Harfleri içeren bir örnek için (A = 10, B = 11 ... F = 15 olan onaltılı gösterimde de kullanılır)

Numara 0x6BF0olduğunu 27632.

6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576    + 2816      + 240       = 27632

2
Merak ettiğim şey, negatif sayılar onaltılık olarak nasıl gösterilmeli? -0xff veya 0x-ff gibi mi? Sanırım birincisi, ama bilmiyorum.
Luc

7
@Luc İlki doğru. Yine de daha sık görüyorum, sadece falan 0xffffffff. ( 0xffffffff = -132-bit int için 2'nin
tümleyeceğini

@Luc Negatif sayılar, 2'nin tamamlayıcısı kullanılarak ikili olarak temsil edilir - '-' işareti gerektirmeyen akıllıca bir yol. Yani, temelde ikiliden hex'e, negatif veya pozitife çeviriyor.
Shuvo Sarker

@ShuvoSarker Eklediğiniz için teşekkürler! Yine de bu sadece hafıza temsili, sanırım 0-999 arasında bir sayı setimiz olduğunu ve 1000-1999'un negatif sayıları temsil edeceğini kabul edersek benzer. Sorum insan tarafından okunabilir notasyonla ilgiliydi, ancak bilgisayarların bunu nasıl yaptığını bilmek başka birine yardımcı olabilir, bu yüzden teşekkürler :)
Luc

16

C ve C sözdizimine dayalı dillerde, önek 0xonaltılık (16 tabanı) anlamına gelir.

Böylece, 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024 veya bir ikili K .

Ve böylece 0x6400 = 0x4000 + 0x2400 = 0x19 × 0x400 = 25K


10

Onaltılık bir sayıdır.

0x6400, 4 * 16 ^ 2 + 6 * 16 ^ 3 = 25600'e çevirir


8

İle başlayan sayılar 0xonaltılıktır (16 tabanında). 0x6400temsil eder25600 .

Dönüştürmek,

  • son rakamı 1 ile çarpın
  • ikinci-son rakamları 16 (16 ^ 1) çarpı ekle
  • üçüncü-son haneyi 256 (16 ^ 2) çarpı ekle
  • dördüncü-son haneyi 4096 (16 ^ 3) çarpı ekle
  • ...ve bunun gibi

1, 16, 256 vb. Faktörler 16'nın artan güçleridir.

0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600 

veya

0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600 

8

BASİT

Bu, sayının başka bir tabanda değil, onaltılı olduğunu belirten bir önek. C programlama dili bunu derleyiciye söylemek için kullanır.

Misal :

0x6400çevirir 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.derleyici okuduğunda 0x6400, bu sayı 0x vadede yardımıyla onaltılık olduğunu anlar. Genellikle (6400)16 or (6400)8herhangi bir temelden anlayabiliriz ..

Umut bir şekilde yardımcı oldu.

İyi günler,

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.