int a=-2; printf("%u",a);输出为:65534.为什么?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/24 09:31:10
int a=-2; printf("%u",a);输出为:65534.为什么?
%u为以无符号十进制输出.无符号整数能表示的数范围是0-65535,即对应的二进制数0-1111111111111111(16个1).
int a=-2;a为有符号的整型,以1111111111111111(16个1)的二进制数存储.(-2二进制表示为10000000000000010,负数在计算机中用补码表示,即1111111111111110).如果用%d输出a,则为-2,但是转换成无符号整数%u输出,1111111111111110(原来的有符号整数-1)被解释成1111111111111110(无符号整数65534),输出结果为65534
int a=-2;a为有符号的整型,以1111111111111111(16个1)的二进制数存储.(-2二进制表示为10000000000000010,负数在计算机中用补码表示,即1111111111111110).如果用%d输出a,则为-2,但是转换成无符号整数%u输出,1111111111111110(原来的有符号整数-1)被解释成1111111111111110(无符号整数65534),输出结果为65534
int a=-2; printf("%u",a);输出为:65534.为什么?
int a=5;printf ("%%d",a);输出的为什么是%d呀具体点,
若int 类型占两个字节,则下列程序段的输出是()int =-1;printf("%d,%u",a a);
若int 类型占两个字节,则下列程序段的输出是()int =-1;printf("%d,%u\n",a a);
main() int a=1; printf("%d\n",(a=a+2,a+3));输出结果为6. 咋么理解?
4.下述语句的输出为( ).Int x=-1; Printf(“%d,%u,
若定义:int a=511,*b=&a;,则printf("%d\n",*b);的输出结果为 ( ).
int a=97,b=98; printf ("%c",a,(b)); printf ("%c",(a,b));请问输出
int a=10,printf("%d",a++),输出结果和a的值是().
main() {int a[10]={1,2,3,4,5}; printf("%d\n",a[6]);}输出的结果是啥,
int a=5,b=7; printf(“%d,”,--a+b++); 程序的输出结果是_________
#include"stdio.h"main(){int a=-1 printf("%d,%u,%o,%x\n",a,a,