C ++输出字节澄清

时间:2014-09-29 18:25:16

标签: byte output bit-shift putchar

来自教科书:

enter image description here

所以我知道一个字节有8位,正确的位移向左边增加零位,并从右边弹出位。 但是如何使用上面的例子输出一个字节? 我希望:

putchar(b >> 8)
putchar(b >> 7)
putchar(b >> 6)
etc.

因为我假设putchar输出弹出的位?

1 个答案:

答案 0 :(得分:1)

putchar打印与给定整数对应的ascii字符。

putchar(0x41)将整数0x41转换为unsigned char(大小为一个字节)并打印出与0x41对应的ascii字符(即“A”)。

这里要认识到putchar只关注低8位,即putchar(0x41)putchar(0xffffff41)做同样的事情。

现在让我们来看看当你向上面的函数传递一些东西时会发生什么。

outbyte(0x41424344);

首先它将b位移24位,然后在该值上调用putchar 0x41424344 << 24; //0x00000041 putchar(0x00000041); //A

然后它将b位移16位,然后在该值上调用putchar 0x41424344 << 24; //0x00004142 putchar(0x00004142); //B

这里有效:http://ideone.com/3xeFSx