打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
unsigned char 数值溢出问题
#include<stdio.h>


int main(void)
{
    unsigned char i = 256;
int a;
a = i 256;
i = a;
printf('%d\n',i);
printf('%d\n',a);
  
return 0;
}


/*
在VC 中的输出结果是:
0
256
Press any key to continue
这说明了 语句 unsigned char 申请的空间 所能存储的数字的范围(也就是unsigned char类型所能表示的数的范围)是 0 — 255(十进制) 一共 256(2的8次方)个
如果说你给 unsigned char 类型的变量赋给大于 255的值 或者 小于0 的值 的话,就会出现溢出,它的规则就像时钟一样,时钟中的最大数字是12,如果
是13点的话,那么时针就会指向1,同样的道理,如果你给 unsigned char 类型的变量 赋 256的话,那么实际上 这个变量存的值为 0 ,在这个例子当中
int 类型的变量所能表示的值 的范围为 -2147483648 — 2147483647 (十进制) 而256 显然在范围之类,所以输出的就是 256 


同样的道理
    unsigned char i = 0;
int a;
a = i - 1;
i = a;
printf('%d\n',i);
printf('%d\n',a);
输出结果为 255
                      -1
*/
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【02
char 与 unsigned char的本质区别
C语言学习教程第八章-枚举、位运算(5)
C语言的变量和数据类型
C语言的基本类型
C语言基本数据类型详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服