Saya mengikuti kursus perguruan tinggi tentang sistem operasi dan kami belajar bagaimana mengkonversi dari biner ke heksadesimal, desimal menjadi heksadesimal, dll. Dan hari ini kami baru belajar bagaimana angka yang ditandatangani / tidak ditandai disimpan dalam memori menggunakan komplemen dua (~ number +1
Kami memiliki beberapa latihan untuk dilakukan di atas kertas dan saya ingin dapat memverifikasi jawaban saya sebelum mengirimkan pekerjaan saya kepada guru. Saya menulis program C ++ untuk beberapa latihan pertama, tetapi sekarang saya buntu bagaimana saya bisa memverifikasi jawaban saya dengan masalah berikut:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
dan kita harus menunjukkan representasi biner dalam memori dari a
, b
dan c
.
Saya sudah melakukannya di atas kertas dan memberi saya hasil berikut (semua representasi biner dalam memori angka setelah komplemen keduanya):
a = 00111010 (ini char, jadi 1 byte)
b = 00001000 (ini char, jadi 1 byte)
c = 11111110 11000101 (pendek, jadi 2 byte)
Apakah ada cara untuk memverifikasi jawaban saya? Apakah ada cara standar dalam C ++ untuk menunjukkan representasi biner dalam memori angka, atau apakah saya harus mengkodekan setiap langkah sendiri (menghitung komplemen dua dan kemudian dikonversi ke biner)? Saya tahu yang terakhir tidak akan lama, tetapi saya ingin tahu apakah ada cara standar untuk melakukannya.
std::hex
) manipulator - Saya akan membiarkannya sebagai latihan bagi Anda untuk menyelesaikan sisanya ...