ฉันกำลังเรียนหลักสูตรวิทยาลัยเกี่ยวกับระบบปฏิบัติการและเรากำลังเรียนรู้วิธีการแปลงจากเลขฐานสองเป็นเลขฐานสิบหก, ทศนิยมให้เป็นเลขฐานสิบหกเป็นต้นและวันนี้เราเพิ่งได้เรียนรู้วิธีการจัดเก็บหมายเลขลงนาม / ไม่ได้ลงนามในหน่วยความจำ + 1)
เรามีแบบฝึกหัดสองข้อให้ทำบนกระดาษและฉันต้องการตรวจสอบคำตอบก่อนส่งงานให้ครู ฉันเขียนโปรแกรม C ++ สำหรับแบบฝึกหัดแรก แต่ตอนนี้ฉันติดอยู่กับวิธีที่ฉันสามารถตรวจสอบคำตอบของฉันด้วยปัญหาต่อไปนี้:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
และเราจำเป็นต้องแสดงแทน binary ในหน่วยความจำของa
, และb
c
ฉันทำมันลงบนกระดาษและให้ผลลัพธ์ต่อไปนี้กับฉัน (การแทนเลขฐานสองทั้งหมดในหน่วยความจำของตัวเลขหลังจากส่วนเติมเต็มของทั้งสอง):
a = 00111010 (มันเป็นถ่านดังนั้น 1 ไบต์)
b = 00001000 (มันเป็นถ่านดังนั้น 1 ไบต์)
c = 11111110 11000101 (มันสั้นดังนั้น 2 ไบต์)
มีวิธียืนยันคำตอบของฉันหรือไม่? มีวิธีมาตรฐานใน C ++ เพื่อแสดงการเป็นตัวแทนไบนารีในหน่วยความจำของตัวเลขหรือฉันต้องรหัสแต่ละขั้นตอนด้วยตนเอง (คำนวณส่วนประกอบทั้งสองแล้วแปลงเป็นไบนารี) ฉันรู้ว่าคนหลังใช้เวลาไม่นาน แต่ฉันอยากรู้ว่ามีวิธีมาตรฐานในการทำเช่นนั้นหรือไม่
std::hex
) หุ่นยนต์ - ฉันจะปล่อยให้มันเป็นแบบฝึกหัดสำหรับคุณที่จะออกกำลังกายส่วนที่เหลือ ...