作业帮 > 综合 > 作业

乘以256和左移8位的区别

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 22:54:12
乘以256和左移8位的区别
a= ch1+ 0x100*ch2,换成 a=ch1 +(ch2
逻辑上这样做法是一样的.实际处理,要考虑处理数据的占用字节大小,char类型变量占用一个字节,也就是8位.左移8位,可能产生溢出.这样计算的结果与实际不符合.还有一点,有的编译器处理左移和右移是不一样.比如说,右移,可能是右边补0,还有可能是补1.具体情况,根据环境不同,产生的结果不同.
再问: 这是在LINUX环境下的,应该是逻辑左移,右边补零,a占两个字节,如果ch1=0x01,ch2=0x03,这两种算法结果都是a==0x0301,还是都是0x0001.或者其他结果?
再答: 第一种是0x0301 第二种是0x0001
再问: 意思是乘法自动把溢出的位补到高位上,移位把溢出的位舍弃吗?