66问答网
所有问题
C语言中unsigned int能显示负数吗?
如图,我在codeblocks中定义了a是一个unsigned int变量,为什么给它赋值-1,能通过编译显示出来?
举报该问题
推荐答案 推荐于2019-11-06
无符号数和有符号数 在存储上并没有区别 在使用的时候 如果符号不匹配 C会做自动转换
比如 你定义了无符号的a然后赋值一个负数 -1 就等同于
a = (
unsigned int
)-1;
得到的a值实际上是0xffffffff (取决于
编译器
,32位编译器为这个值)
如果用%u输出 那么就会输出这个数字对应的10进制值 为2^32-1
但是你用%d输出 就等于
printf("%d", (int)a);
于是又被转回了-1
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/nnxnnxnsDiDxx2viUii.html
相似回答
int 和
unsigned
int
有什么区别?不是都
可以
表示
负数吗?
答:
int是将一半正数用于表示负数,而unsigned int表示正数范围更大
。在不需要负数的情况下要用unsigned int,比如数组下标,用负数没有必要。
C语言中的unsigned
int
是什么
答:
unsigned
a;a=5;或:unsigned int a;a=5;16位系统中一个
int能
存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是
负数
;如果是无符号数,则都解释为正数。同时在相同位数的情况下,...
unsigned
int
取值范围是?
答:
16位系统中
的unsigned
int 16位系统中一个
int能
存储的数据的范围为:-32768~32767,而unsigned int能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。所以如果整数的最高位是1,有符号数的话就是
负数
;如果是无符号数,则都表示正数。另外,unsigned若省略后一个关键字,大多数...
C语言中
,
unsigned
int
型数据的取值范围是
答:
unsigned
a;a=5;或:unsigned int a;a=5;16位系统中一个
int能
存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的。系统使用 无符号数只表示大小,有符号数最高位(二进制情况下最高位表示符号位),在同一操作系统下,有符号数和...
请问在VC6.0中为什么
unsigned
int
变量
可以
存放
负值??
答:
若是无符号数(
unsigned
int
),存储的范围就是0-4294967296 若是有符号数,(signed int),存储的范围就是-2147483648-2147483647,因为最高位被当做符号位。最高位为0,是正数,最高位为1,是
负数
。-1这个有符号数的补码是 1111111111111111111111111111111111 如果当做无符号数就是4294967295.为什么用这种...
C语言unsigned
int
答:
对于
unsigned
int,他依然是4个字节,但是他的取值范围是0到4294967295,对于signed int他是将unsigned
int的
0到2147483647表示为 0到2147483647,把2147483648到4294967295表示为-2147483647到-1 所以呢 我刚才说的第一段中的-100并不是变成了100的愿意,他变成了-100对应的那个无符整数,存在a中,然后你用%d...
大家正在搜
c语言unsigned int
int转unsigned int
c语言unsigned赋值int
unsigned int i
unsigned int数据范围
unsigned int a
C语言unsigned
C语言unsigned什么意思
C语言unsigned用什么输出
相关问题
C语言中,unsigned不应该是无符号数吗?为什么还是可以...
C语言中不是unsigned int不能表示负数吗?
C语言中的unsigned int是什么
请问c语言中,unsigned int类型变量可以赋给int...
关于在C语言中无符号整形存储负数问题
将负数赋给无符号变量将出现什么情况?关于C语言
C语言的unsigned int是什么意思?
C语言使用unsigned把负数转换成整数是怎么计算的?