写出以下程序的输出结果(答案是16,ffec,177754)
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/03 20:00:22
写出以下程序的输出结果(答案是16,ffec,177754)
main()
{ int x=020,y=-20;
printf("%d,%x,%o\n",x,y,y);}
main()
{ int x=020,y=-20;
printf("%d,%x,%o\n",x,y,y);}
![写出以下程序的输出结果(答案是16,ffec,177754)](/uploads/image/z/2299922-26-2.jpg?t=%E5%86%99%E5%87%BA%E4%BB%A5%E4%B8%8B%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%EF%BC%88%E7%AD%94%E6%A1%88%E6%98%AF16%2Cffec%2C177754%29)
就是个内码问题嘛.
首先,x=020,就是八进制的20,换成10进制就是16了,这个不用细讲.
y是负数,就要先固定下环境了.看答案似乎是TC的环境,因为int占16位.
那么-20你可以认为是差二十到0.
就是
1111 1111 1110 1100(因为20是1 0100,两者相加为全0)
那么每4位一个十六进制数,自然就是ffec了
八进制的话,
1 111 111 111 101 100
就是177754
首先,x=020,就是八进制的20,换成10进制就是16了,这个不用细讲.
y是负数,就要先固定下环境了.看答案似乎是TC的环境,因为int占16位.
那么-20你可以认为是差二十到0.
就是
1111 1111 1110 1100(因为20是1 0100,两者相加为全0)
那么每4位一个十六进制数,自然就是ffec了
八进制的话,
1 111 111 111 101 100
就是177754