数据的溢出、饱和、截断

溢出:指给某个变量赋值时,超出了该类型变量所能表达的范围,比如:

unsigned char a;
a = 260;//a的取值范围是0~255,使a=260就会导致数据溢出,a最终得到的是一个错误的值;

饱和:指给某个变量赋值时,超出了该类型能表达的范围,如果采取饱和策略,就会让该变量等于一个最大值或者最小值,比如:

unsigned char a;
a = 260;//a溢出了,如果采取饱和策略则a的最终结果是255

截断:指给某个变量赋值时,超出了该类型能表达的范围,如果采取截断策略,则变量只保留数据中低字节的数据,高字节的数据则会丢弃,比如

unsigned char a;
a = 260;//如果采取截断策略,260 = 0x0104,则a的最终结果是4;

这里强调一下,c语言中数据发生溢出后,默认采取的是截断策略。

发布了14 篇原创文章 · 获赞 3 · 访问量 6493
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章