(c语言)整型**的溢出

时间:2014.08.14 发布人:bk111koh

(c语言)整型**的溢出

已解决问题

谷歌bk111koh用户在2014.08.14提交了关于“故宫(c语言)整型**的溢出”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-01-07T02:34:22。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,我不知道说什么才好,除了谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:sbceq61580  

C语言的整型溢出观困剧列岁仍江路兰式,分为无符号整型溢出和有符号整型溢出。
对于unsigned整型溢出,C的规范是有定义的——“溢出后的数会以2^(8*sizeof(type))作模运算”,也就是说,如果一个unsignedchar(1字符,8bits)溢出了,会把溢面往核注液氢行烧出的值与256求模。如:
1.unsignedcharx=0xff;

2.prin问答tf("%dn",++x)协衡银曾同则十他身担;
上面的代码会输出:0(因供出另象为0xff+1是256,与2^8求模后就是0)
对于signed整型的溢出,C的规范定义是“undef无款述能和inedbeh**ior”,也就是说,编译器爱怎么实现就怎么实现。如:
1.signedcharx半纸处套院=0x7f;//注:0xff就是-1了,因为最高位是1也就是负数了

2.脚波客环侵派练级府争printf("%dn",++x);

上面的代码会输出:-128,因为0x7f+0×0庆计系1得到0×80,也就是二进制的10000000,符号位为1,负数,后面为全0,就是负的最小数,即-128。