อะไร0x
คำนำหน้าบนตัวเลขหมายความว่าอย่างไร
const int shared_segment_size = 0x6400;
มันมาจากโปรแกรม C ฉันจำไม่ได้ว่ามันมีค่าเท่าไหร่และโดยเฉพาะความx
หมายของตัวอักษร
อะไร0x
คำนำหน้าบนตัวเลขหมายความว่าอย่างไร
const int shared_segment_size = 0x6400;
มันมาจากโปรแกรม C ฉันจำไม่ได้ว่ามันมีค่าเท่าไหร่และโดยเฉพาะความx
หมายของตัวอักษร
0x prefix C++
นำคุณมาที่นี่ตอนนี้ :)
คำตอบ:
ตัวอักษรที่ขึ้นต้นด้วย0x
จำนวนเต็มฐานสิบหก (ฐาน 16)
ตัวเลข0x6400
คือ25600
.
6 * 16^3 + 4 * 16^2 = 25600
ตัวอย่างเช่นตัวอักษร (ใช้ในสัญกรณ์ฐานสิบหกโดยที่ A = 10, B = 11 ... F = 15)
ตัวเลข0x6BF0
คือ27632
.
6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576 + 2816 + 240 = 27632
0xffffffff
และเช่น ( 0xffffffff = -1
สำหรับ int 32 บิตสมมติว่าส่วนเติมเต็ม 2)
ในภาษา C และภาษาตามไวยากรณ์ C คำนำหน้า0x
หมายถึงเลขฐานสิบหก (ฐาน 16)
ดังนั้น 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024 หรือหนึ่งไบนารี K .
ดังนั้น 0x6400 = 0x4000 + 0x2400 = 0x19 × 0x400 = 25K
มันคือเลขฐานสิบหก
0x6400 แปลเป็น 4 * 16 ^ 2 + 6 * 16 ^ 3 = 25600
ตัวเลขที่ขึ้นต้นด้วย0x
เลขฐานสิบหก (ฐาน 16) หมายถึง0x6400
25600
ในการแปลง
ปัจจัย 1, 16, 256 และอื่น ๆ คือพลังที่เพิ่มขึ้นของ 16
0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600
หรือ
0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600
ง่าย
เป็นคำนำหน้าเพื่อระบุว่าตัวเลขอยู่ในเลขฐานสิบหกแทนที่จะอยู่ในฐานอื่น ๆ โปรแกรมภาษาซีใช้เพื่อบอกคอมไพเลอร์
ตัวอย่าง:
0x6400
แปลเป็น6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
เมื่อคอมไพเลอร์อ่าน0x6400
เข้าใจว่าตัวเลขเป็นเลขฐานสิบหกโดยใช้คำศัพท์ 0x โดยปกติเราสามารถเข้าใจโดย(6400)16 or (6400)8
หรือฐานใด ๆ ..
หวังว่าจะช่วยไม่ทางใดก็ทางหนึ่ง
ขอให้เป็นวันที่ดี,