C语言中"按位与"&运算中如果是两个负数,先取反“与”,所得的结果是否要写成原码?书中写到负数先要取反,再进行“按位与”,但没说“按位与”之后所得的结果是否要写成原码,依我之见,当

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 03:42:57
C语言中
xnA_`ڴ¶]^)+cT˲@0#R ̙^ !k4^bvg3gτRGlg=~Z JysH,Zg2F ZJqZQO%WaZuO޺eRu2Sņ쒫A <I3#kLƃ'G`tg\P*IhLO )biG* ]Ucy w!9 ͳdWl9!}#(-86E‚ ?H ZmLc \g0G%Lv{dB=-0rmNNuiyk 6-D/'qְYؠvQ̹01>{I%e≏ϞG&|"}K*h8p_vd9yoaBτد[\GcF)4tÿx%xEC~*DZ

C语言中"按位与"&运算中如果是两个负数,先取反“与”,所得的结果是否要写成原码?书中写到负数先要取反,再进行“按位与”,但没说“按位与”之后所得的结果是否要写成原码,依我之见,当
C语言中"按位与"&运算中如果是两个负数,先取反“与”,所得的结果是否要写成原码?
书中写到负数先要取反,再进行“按位与”,但没说“按位与”之后所得的结果是否要写成原码,依我之见,当结果写成十进制时,应写成原码.是不是这样啊?

C语言中"按位与"&运算中如果是两个负数,先取反“与”,所得的结果是否要写成原码?书中写到负数先要取反,再进行“按位与”,但没说“按位与”之后所得的结果是否要写成原码,依我之见,当
按位与运算是按照数据的内部二进制形式进行运算的.若是两个负数,则是按二进制补码形式进行按位与.所得结果若用有符号整型变量存储,则内部形式仍看作二进制补码.如果用格式符%d输出,输出结果为十进制真值(不应该称为十进制原码).
例如:
#include
main()
{short int a=-2,b=-3,c;
a=-2;//a的补码1111 1111 1111 1110
b=-3;//b的补码1111 1111 1111 1101
c=a&b;//c的补码1111 1111 1111 1100
printf("%hd\n",c);//c的真值-4
}