首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当Int超出char范围时,C中int到char的转换规则

当Int超出char范围时,C中int到char的转换规则
EN

Stack Overflow用户
提问于 2018-06-01 08:08:46
回答 1查看 363关注 0票数 1

请看下面的C代码。

#include <stdio.h>

int main(void)
{
    char c1 = 3000;
    char c2 = 250;
    printf("%d\n",c1);
    printf("%d\n",c2);
}

上述代码的输出为

-72

-6

请解释此处应用的整数到字符的转换规则,因为3000和250都超出了字符的范围(-128到127)。

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 08:21:28

Integer使用4字节,char使用1字节。C中的数字被表示为有符号,这意味着从左边开始的第一位是符号(正,负),其余的是完全补码中的数字。所以数字3000在二进制中是这样表示的,而对于整数,它是这样存储的。因为char只有1个字节,所以最后8位表示在char变量中保存的数字,即10111000。当你把它转换成十进制时,你会得到-72。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50634428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档