请问C语言高手些 把11000000分别右移(0~7位)之后分别各是多少(二进制数形式)? 再把每一次移位之后的 c语言编写 八位二进制数,最后两位相与,高七位向右移一位,把...
\u5728C\u8bed\u8a00\u4e2d\uff0c\u600e\u6837\u5c06\u4e00\u4e2a\u56db\u5341\u4f4d\u7684\u4e8c\u8fdb\u5236\u6570\u5206\u79bb\u6210\u4e94\u4e2a\u516b\u4f4d\u4e8c\u8fdb\u5236\u6570\uff1f\u662f\u600e\u6837\u79fb\u4f4d?\u5047\u5982a\u662f\u90a3\u4e2a40\u4f4d\u7684\u6570\uff0cx\uff0cy\uff0cz\uff0cw\uff0cr\u4e3a\u90a3\u4e94\u4e2a8\u4f4d\u6570\uff0c
x=a&0xff;
a>>=8;
y=a&0xff;
a>>=8;
\u2026\u2026
\u63a5\u4e0b\u6765\u7684\u81ea\u5df1\u5f04\u4e86\uff0c\u6211\u5c31\u8bf4\u5230\u8fd9\uff0c\u5f53\u7136\u7ed3\u679c\u662f16\u8fdb\u5236\u7684\uff0c\u8fd9\u5c31\u662f\u53e6\u5916\u4e00\u4e2a\u95ee\u9898\u4e86\uff0c\u81ea\u5df1\u60f3\u5427
# include
void main(void)
{
unsigned char a = 9;
unsigned char temp;
int i = 20;//\u6267\u884c\u6b21\u6570
while (i--)
{
printf("0x%x\n", a);
temp = (a&0x2) & (a&0x1);
a = (a>>1) | (temp<<7);
}
}
右移0位11000000
右移1位01100000
右移2位00110000
右移3位00011000
右移4位00001100
右移5位00000110
右移6位00000011
右移7位00000001
其实右移一次也相当于除以2,
右移1位11000000 ---》1100000
右移2位11000000 ---》110000
右移3位11000000 ---》11000
右移4位11000000 ---》1100
右移5位11000000 ---》110
右移6位11000000 ---》11
右移一位11000000 ---》1
相当于除2
右移0位11000000
右移1位01100000
右移2位00110000
右移3位00011000
右移4位00001100
右移5位00000110
右移6位00000011
右移7位00000001
这个也太简单了吧?
qwefdewf
扩展阅读:c语言1- 0 ... c#语言学习 ... c#语言翻译器 ... 各国语言翻译器 ... c语言基础知识入门 ... 编程实现1+2+3+ 100 ... c语言引导符大全 ... 简单计算器c语言 ... c语言1 1 ...