如何以二进制形式打印(使用cout)数字?
我正在上一本关于操作系统的大学课程,我们正在学习如何从二进制转换为十六进制,从十进制转换为十六进制,等等。今天,我们刚刚学习了如何使用二进制补码(〜number)将有符号/无符号数字存储在内存中。 +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 ++中是否有一种标准的方法可以显示数字在内存中的二进制表示形式,还是我必须自己对每个步骤进行编码(计算二者的补码,然后转换为二进制)?我知道后者不会花很长时间,但是我很好奇是否有标准的方法可以这样做。