作业帮 > 数学 > 作业

char a,b,c;c=a+b; 如果c大于一个字节了,假设就=256.那么 c>>8会是1吗?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/05/01 13:48:42
char a,b,c;c=a+b; 如果c大于一个字节了,假设就=256.那么 c>>8会是1吗?
char a,b,c;c=a+b;
如果c大于一个字节了,假设就=256.那么
c>>8会是1吗?
原理是啥?
c如果是一个字节的话,取值范围是 0-255,不会等于 256的哦
再问: //buf表示报文中需要计算校验和的各个数,n是数据个数

unsigned short checksum(unsigned short *buf, int n)
{
  unsigned sum;
  for(sum = 0; n > 0; n--)
    sum += *buf++;
  sum = (sum >> 16) + (sum & 0xFFFF);
  sum += (sum >> 16);
  return ~sum;
}
你看下这个,他定义short型,那右移16位那就是0咯?为啥还要用来加。这是ip校验的函数。难道他错了,我没试
再问: 哦不好意思。sum是int型。谢谢了