来自教科书:
所以我知道一个字节有8位,正确的位移向左边增加零位,并从右边弹出位。 但是如何使用上面的例子输出一个字节? 我希望:
putchar(b >> 8)
putchar(b >> 7)
putchar(b >> 6)
etc.
因为我假设putchar输出弹出的位?
答案 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
等