C语言 %u 是以什么形式输出???

2025-03-07 14:49:34
推荐回答(5个)
回答1:

k是int型常量,int=signed long (有符号长整型),就是有正负之分。
int的范围是 -(2^31)-1 ~ (2^31)-1
%u是unsigned,无符号,就是没有正负之分,只有正数,负数也当作正数处理。
这里的范围是一个环状的,-1的无符号型并不是1,而是2^32-1,其原因:
首先,unsigend int范围是0~(2^32)-1
有符号时:——————————————
…… -1 0 ……
无符号时:——————————————
0 1 2 ………… | |
4294967294 4294967295(==-1)
也就是说,-1原先在0的左边,在整形负数中最靠近0,但是一旦负号不存在,-1就被丢到了后面,-1的unsigned值自然是unsigned int的最大值4294967295。
再有,-3的unsigned型是:4294967293.

这里的范围是环形的概念还要你自己揣摩、分析。如若还是看不懂,我建议你问你的老师或是同学,不要抹不开面,搞学术的,就要有喜欢问的习惯。遇到不懂的一定要问明白,不可忽视。

回答2:

无符号当然就没法输出负数了
在二进制码中
第一位是符号位
无符号也就没有符号位
所以
32位整数的取值
就是
00000000000000000000000000000000

22222222222222222222222222222222

回答3:

%u是无符号整形,4294967295应该是无符号数的最大值

回答4:

%u是以无符号数输出。

回答5:

很正常

4294967295 = 0xffffffff

%u 就是 无符号数 形式
u int Unsigned decimal integer.