C语言中~0之类的问题

#include<stdio.h>intmain(){/*先把数字0的各个二进制位全部转化为1*/printf("%d\n",~0);/*在转换成unsignedchar... #include<stdio.h>

int main()
{
/*先把数字0的各个二进制位全部转化为1*/
printf("%d\n",~0);
/*在转换成unsigned char类型*/
printf("%d\n",(unsigned char)~0);
/*再类型值右移一位以清除符号*/
printf("%d\n",(unsigned char)~0 >> 1);
/*再转化为char类型*/
printf("%d\n",-(char)((unsigned char)~0 >> 1));

printf("sign char max = %d\n",(char)((unsigned char)~0 >> 1));
return 0;
}
这个程序我看了注释还没看懂,~0的这个0在没有经过(unsigned char)转化的的时候是什么类型的呢?这个程序是怎么执行的呢?
展开
 我来答
L_o_o_n_i_e
2010-02-12 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5492万
展开全部
~0 是0的按位计算。
0 原来是二进制全0
~0 是二进制全1

用16进制表示:
0 == 0x00000000
~0 == 0xffffffff
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式