Я слідую за курсом коледжу з операційних систем, і ми вчимося, як перетворити з двійкових у шістнадцятковий, десятковий у шістнадцятковий і т.д. + 1).
У нас є кілька вправ, які потрібно зробити на папері, і я хотів би мати можливість перевірити свої відповіді, перш ніж подавати свою роботу вчителю. Я написав програму C ++ протягом перших кількох вправ, але тепер я затримався, як я міг перевірити свою відповідь за допомогою наступної проблеми:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
і ми повинні показати , двійкове подання в пам'яті про a
, b
і c
.
Я це зробив на папері, і це дає мені наступні результати (всі двійкові представлення на пам'ять про числа після їх доповнення):
a = 00111010 (це знак, тому 1 байт)
b = 00001000 (це знак, тому 1 байт)
c = 11111110 11000101 (це короткий, тому 2 байти)
Чи є спосіб перевірити свою відповідь? Чи є стандартний спосіб в C ++ відображати бінарне представлення в пам'яті числа, або мені потрібно кодувати кожен крок самостійно (обчислюйте доповнення двох, а потім перетворюйте у бінарне)? Я знаю, що останнє не зайняло б так довго, але мені цікаво, чи існує стандартний спосіб зробити це.
std::hex
) маніпулятор - я залишаю це як вправу, щоб ви відпрацювали решту ...