『壹』 无符号整型和有符号整型如何相互转换(一道题目),忘高手求教,谢谢
int a;
unsigned b;
a=-10; /*a的二袭进制码为(1111 1111 1111 0110)2=(-10)10,因为a是有符号整数*/
b=a; /*b的二进制码为(1111 1111 1111 0110)2=(65526)10,因为b是无符号整数*/
printf("%d,%u/n",a,b);
b=65521;/*b的二进制码为(1111 1111 1111 0001)2=(65521)10,因为b是无符号整数*/
a=b;/*a的二进制码为(1111 1111 1111 0001)2=(-15)10,因为a是有符号整数*/
printf("%d,%u/n",a,b);
你看看数的二进制存储那部分就明白了
负数存的是补码,正数存的是原码
『贰』 C语言中无符号长整型数的输入输出格式是什么
C语言中无符号长整型数的输入输出格式%u。
示例:
intmain()
{
unsignedinta;
intb=-1;
a=b;
printf(“%u”,a);
}
(2)无符号整形怎么输出扩展阅读
c语言版printf()输出格式权
%p指针
%s字符串
%%"%"
%a(%A)浮点数、十六进制数字和p-(P-)记数法(C99)
%c字符
%d有符号十进制整数
%f浮点数(包括float和doulbe)
%e(%E)浮点数指数输出[e-(E-)记数法]
%g(%G)浮点数不显无意义的零"0"
%i有符号十进制整数(与%d相同)
%o八进制整数e.g.0123
%x(%X)十六进制整数<xml:namespaceprefix=st1/>()e.g.0x1234
『叁』 c语言无符号短整型和短整型输出符号是什么
c的定义是
unsigned short 和 short
但是标准库printf输出的格式并不区分short和int
都是%d 或 %u
『肆』 c语言中什么是无符号的整数输出
整数有两种类型:有符号整数和无符号整数(本质上编译器是对于同一串0和1有两种解读方式)
“无符号的整数输出”就是按无符号整数的“解读方式”输出整数
。
『伍』 将变量m定义为无符号整型,输出时可以用有符号数的格式输出吗
可以! 假设一个16位的无符号整型,最大值是127(二进制:11111111B),如果你按有符号的输出专的话,-63(二进制也是:属11111111B),它只是把最高位当成符号位看!你用%d输出的话它最高位就看成符号位,用%u输出的话它最高位就不看成符号位罢了。不只这样,你也可以用char字符型输出和浮点型的输出。用char型输出的话它会把11111111B截取一半1111B输出,用double输出的话它则会在前面补8个0
『陆』 输入无符号整形范围内整数 输出他的位数和各位数字的和
利用循环把一个一个数去出来进行累加,同时用一个变量来累加他们的位数,这样就可以计算出他们的位数和各位数字的和!
『柒』 -42用无符号整型输出是什么,为什么
如果是8位宽度的无符号整型数,它等于-42+256=214
若是16位的无符号整型数,则等于-42+65536=65494
『捌』 无符号整型,为什么输出这样的结果
%d是输出有符号的整数.输出无符号整数用%u.
int的大小是看计算机位数和编译器的.16位的unsigned int最大专是65535,不过现在大部属分是32位编译器和计算机,unsigned int最大就是2的32次方减1,4294967295.
『玖』 C语言 无符号整型的输出
B.不过个人觉抄得这题没答案才对。袭平台都没说,怎么会有准确答案呢?
VC6.0肯定不是这个答案,它的int是32位的。如果这题的int是16位的那么就选B。
解释:-1在内存中是以补码形式存储的。补码的二进制为:1111 1111 1111 1111
这个数按照无符号数输出:也就是0xffff 也就是65535.
从可视化的-1怎么转换到补码形式:因为假设你的平台是16位的
-1补码 = 2^16 - |-1| = 1 0000 0000 0000 0000 - 1 = 1111 1111 1111 1111
『拾』 无符号整型32678以有符号整型输出
无符号整型32678 以有 符号整型输出 还是 32678。
(32768 以有 符号整型输出 是 -32768 -- 16进制专 0x8000)
c语言程序:
#include<stdio.h>
int main()
{
unsigned short int us=32678;
printf("%hu %hd %#x\n",us,(short) us,us);
return 0;
}
输出 10进制无符号,10进制有符属号,16进制 分别为:
32678 32678 0x7fa6