C语言unsigned char x=-1;printf("%d\n",x);为何输出会是255?

unsignedcharx=-1;printf("%d\n",x);char我是作为无符号字符型初始化为-1,仍后按照%d输出,结果为何会是255,想知道计算机具体处理过... unsigned char x=-1; printf("%d\n",x); char我是作为无符号字符型初始化为-1,仍后按照%d输出,结果为何会是255,想知道计算机具体处理过程。 展开
 我来答
创作者bLEQiUB5Sm
2019-07-28 · TA获得超过3743个赞
知道大有可为答主
回答量:3098
采纳率:32%
帮助的人:272万
展开全部
需要了解
整数
在计算机中的编码
,对于整数在计算机中一般是
原码

反码

补码
三种
编码方式
,以-1为例。选择8位的二进制数来表示:
-1的原码
10000001
//最高位为符号位
-1的反码
11111110
//符号位不变,各位求反
-1的补码
11111111
//符号位不变,反码加1
所以,当使用unsigned
char
即无符号整数时,-1用补码表示即1111
1111,
十六进制
表示为0xff
,十进制表示即为255。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式