โดยทั่วไปคอมพิวเตอร์สมัยใหม่ทุกเครื่องเป็นเครื่องที่มีแรงผลักดันบิต โดยปกติแล้วมันจะดันบิตเป็นกลุ่มของข้อมูลเรียกว่าไบต์คำ dwords หรือ qwords
ไบต์ประกอบด้วย 8 บิตคำ 2 ไบต์ (หรือ 16 บิต), คำ dword 2 (หรือ 32 บิต) และ qword 2 dwords (หรือ 64 บิต) นี่ไม่ใช่วิธีเดียวที่จะจัดเรียงบิต การจัดการ 128 บิตและ 256 บิตมักเกิดขึ้นในคำแนะนำ SIMD
คำแนะนำการประกอบใช้งานได้กับการลงทะเบียนและที่อยู่หน่วยความจำโดยปกติจะทำงานในรูปแบบใดแบบหนึ่ง
ALU (หน่วยคำนวณเลขคณิต) ทำงานบนกลุ่มของบิตราวกับว่าพวกเขาเป็นตัวแทนจำนวนเต็ม (โดยปกติรูปแบบของสองส่วนเติมเต็ม) และ FPUs ราวกับว่าพวกเขาที่จุดลอยตัวค่า (ปกติ IEEE 754 สไตล์float
และdouble
) ส่วนอื่น ๆ จะทำหน้าที่เหมือนเป็นข้อมูลที่รวบรวมมาในรูปแบบตัวละครรายการตารางคำสั่ง CPU หรือที่อยู่
บนคอมพิวเตอร์ 64 บิตโดยทั่วไปชุดของ 8 ไบต์ (64 บิต) คือที่อยู่ เราแสดงที่อยู่เหล่านี้ตามอัตภาพในรูปแบบเลขฐานสิบหก (เหมือน0xabcd1234cdef5678
) แต่นั่นเป็นเพียงวิธีที่ง่ายสำหรับมนุษย์ในการอ่านรูปแบบบิต แต่ละไบต์ (8 บิต) ถูกเขียนเป็นอักขระฐานสิบหกสองตัว (เทียบเท่าอักขระฐานสิบแต่ละตัว - 0 ถึง F - หมายถึง 4 บิต)
สิ่งที่เกิดขึ้นจริง (สำหรับบางระดับจริง) คือมีบิตมักจะเก็บไว้ในทะเบียนหรือเก็บไว้ในสถานที่ใกล้เคียงในธนาคารหน่วยความจำและเราแค่พยายามอธิบายให้คนอื่น
การติดตามตัวชี้ประกอบด้วยการขอให้ตัวควบคุมหน่วยความจำให้ข้อมูลบางอย่างกับเราที่ตำแหน่งนั้น โดยทั่วไปแล้วคุณจะขอให้ตัวควบคุมหน่วยความจำมีจำนวนไบต์ที่แน่นอนในสถานที่หนึ่ง (เช่นกันโดยปริยายช่วงของตำแหน่งมักจะต่อเนื่องกัน) และมันจะถูกส่งผ่านกลไกต่าง ๆ ที่ฉันจะไม่เข้าไป
รหัสมักจะระบุปลายทางสำหรับข้อมูลที่จะนำไปใช้ - การลงทะเบียนที่อยู่หน่วยความจำอื่น ฯลฯ - และโดยปกติแล้วมันเป็นความคิดที่ดีที่จะโหลดข้อมูลจุดลอยตัวในการลงทะเบียนโดยคาดว่าจะเป็นจำนวนเต็มหรือในทางกลับกัน
ประเภทของข้อมูลใน C / C ++ เป็นสิ่งที่คอมไพเลอร์คอยติดตามและมันจะเปลี่ยนแปลงสิ่งที่สร้างรหัส โดยปกติแล้วจะไม่มีสิ่งใดอยู่ภายในข้อมูลที่ทำให้เป็นจริงประเภทใดประเภทหนึ่ง เพียงแค่ชุดของบิต (จัดเรียงเป็นไบต์) ที่ได้รับการจัดการในลักษณะที่เป็นจำนวนเต็ม (หรือวิธีที่เหมือนลอยหรือวิธีที่อยู่เหมือน) โดยรหัส
มีข้อยกเว้นนี้ มีสถาปัตยกรรมที่บางสิ่งแตกต่างกันชนิดของบิต ตัวอย่างที่พบบ่อยที่สุดคือหน้าการดำเนินการที่ได้รับการป้องกัน - ในขณะที่คำแนะนำบอก CPU ว่าอะไรคือบิตในขณะใช้งานหน้า (หน่วยความจำ) ที่มีรหัสที่จะเรียกใช้งานจะถูกทำเครื่องหมายเป็นพิเศษไม่สามารถแก้ไขได้ เป็นหน้าการดำเนินการ
นอกจากนี้ยังมีข้อมูลแบบอ่านอย่างเดียว (บางครั้งเก็บไว้ใน ROM ที่ไม่สามารถเขียนได้!) ปัญหาการจัดตำแหน่ง (โปรเซสเซอร์บางตัวไม่สามารถโหลดได้ double
s จากหน่วยความจำเว้นแต่ว่าพวกเขาจะถูกจัดตำแหน่งในวิธีการเฉพาะหรือคำสั่ง SIMD สถาปัตยกรรมอื่น ๆ
แม้แต่รายละเอียดในระดับที่สูงกว่าก็เป็นเรื่องโกหก คอมพิวเตอร์ไม่ได้ "ผลักดัน" ไปรอบ ๆ บิตพวกมันดันไปตามแรงดันและกระแส แรงดันไฟฟ้าและกระแสไฟฟ้าเหล่านี้บางครั้งไม่ได้ทำในสิ่งที่ "ควร" ทำที่ระดับนามธรรมของบิต ชิปถูกออกแบบมาเพื่อตรวจจับข้อผิดพลาดส่วนใหญ่และแก้ไขได้โดยไม่ต้องมีระดับที่สูงขึ้นโดยไม่จำเป็นต้องรับรู้
แม้แต่เรื่องโกหก
แต่ละระดับของสิ่งที่เป็นนามธรรมจะซ่อนสิ่งหนึ่งไว้ด้านล่างและช่วยให้คุณคิดเกี่ยวกับการแก้ปัญหาโดยไม่ต้องนึกถึงแผนภาพไฟน์แมนเพื่อที่จะพิมพ์ออกมา "Hello World"
เพื่อที่จะพิมพ์ออกมา
ดังนั้นในระดับความซื่อสัตย์ที่เพียงพอคอมพิวเตอร์จึงใช้บิตการผลักดันและบิตเหล่านั้นจะได้รับความหมายตามวิธีการใช้งาน