当前位置:  开发笔记 > 编程语言 > 正文

C语言中的溢出和下溢

如何解决《C语言中的溢出和下溢》经验,为你挑选了1个好方法。

你能解释的家伙我溢出和下溢如何工作的signed char,并unsigned char

int main () {
    signed char c;

    scanf("%d",&c);
    printf("%d\n",c);
    printf("%c\n",c);

return 0;
}

在这种情况下,如果谢谢scanf,我说c=200有一个溢出,这是由第一个显示printf.

第二个printf给我相同的ASCII符号200 ...
为什么?



1> Dani..:

scanf%d预期的int,所以给它任何东西是不确定的行为.
你应该做这个:

int d;
scanf("%d", &d);
whatevertype c = (whatevertype)d;

但是,有符号整数溢出未定义.但是如果你使用无符号类型,比如

unsigned char c = (unsigned char)d;

然后c保证d模数2为a中位数的幂unsigned char.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有