c语言中 printf("%u\n", i*-1);里面的i*-1是什么意思

unsignedinti=3;printf("%u\n",i*-1);i*-1怎么解释,为什么在32位机中输出的结果是4294967293THX~~... unsigned int i = 3;

printf("%u\n", i*-1);
i*-1怎么解释,为什么在32位机中输出的结果是4294967293
THX~~
展开
 我来答
wchyumo2011
推荐于2017-09-12 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2825万
展开全部
i*-1的意思是i与-1的乘积,可以写为i*(-1)或(-1)*i。意思是取i的相反数。如i=3,则运算的结果为-3,i=-3,则运算的结果为3。

printf中%u表示将结果按无符号整数形式输出, '\n'表示回车

规定符说明:
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
wdwy003
2013-07-13 · TA获得超过2113个赞
知道小有建树答主
回答量:1073
采纳率:0%
帮助的人:1061万
展开全部
.....意思就是i*(-1)
i * -1 就是 -i

i = 3 二进制 就是 0000000000 0000000000 0000000000 11

-3的二进制就是 1111111111 1111111111 1111111111 01

用无符号数输出就是 4294967293
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一颗程序猿o_0
2015-06-02 · TA获得超过6298个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1357万
展开全部
就是 i 乘以 负一 的意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式