通信人家园

标题: 诸位大侠过来帮忙指点下啊  [查看完整版帖子] [打印本页]

时间:  2010-3-15 09:56
作者: huatouzhu     标题: 诸位大侠过来帮忙指点下啊

请大虾指点啊:C++中 移位运算符>>和按位取反运算符~的优先级   我有下面的程序 为什么  最终结果是一样的  我自己手算着不一样啊。。。
#include <iostream>
using namespace std;
int main()
{
        unsigned char a=0xa5;
        unsigned char b=(~a)>>4;
        unsigned char n=0xa5;
        unsigned char c=~(n>>4);
        printf("a=%d\n",a);
        printf("---------------------\n");
        printf("b=%d\n",b);
        printf("---------------------\n");
        printf("c=%d\n",c);
        a=0xa5;
        unsigned char f=~a>>4;
        printf("---------------------\n");
        printf("c=%d\n",f);

        return 0;
}


  希望给出说明  谢谢了
时间:  2010-3-15 14:22
作者: laozhu

问错地了吧
时间:  2010-3-18 22:13
作者: huatouzhu     标题: 回复 2# 的帖子

没有啊   学通信的怎么可能不懂编程那??   至少一门编程语言是必须的啊。。。。。
时间:  2010-6-11 15:57
作者: huatouzhu

哎  ,,,虽然是编程题    不过学通信的总离不开编程吧,虽然这个问题没有人回答我,不过我已经解决 ,   写出来供大家参考吧
这个题目主要是考察数值在经过编译器处理时会对数值做一些处理,这里的处理就是“整形提升”,也就是把小于整形的处理成整形,并做相关运算,做完相关运算后在把整形截取处理,这个题目就是先把unsigned char  转换成INT    然后在截取   最后得出结论。




通信人家园 (https://www.txrjy.com/) Powered by C114