整数

而短整型、长整型技术上是正确的,我们更愿意使用速记版本的短期和长期的替代。添加前缀int使类型区分变量int类型。可能导致错误(如溢出)如果短期或长期的改性剂是无意中错过了

因为char,int短,大小,和长可以依赖于编译器和/或计算机体系结构的不同,可以是整数的大小而不是名字的指导。我们经常把整数或字节的类型被分配一个变量数

当你在最后一节中了解到,一个变量n位可存储2 ^ n值不同。我们称之为设定值,数据类型可以保持它的范围。整数可以拥有两个不同的范围这取决于他们是否符号或无符号

有符号和无符号变量

一个有符号整数是一个变量,可以持有正面和负面的数字。声明一个变量作为签名你可以使用签名的关键词

1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    using namespace std;
    unsigned short x = 65535; // largest 2-byte unsigned value possible
    cout << "x was: " << x << endl;
    x = x + 1; // We desire 65536, but we get overflow!
    cout << "x is now: " << x << endl;
}

你认为这项计划的结果会是什么?

X是65535

X是现在:0

出什么事了?非正式的,我们试图将溢出变量的数目太大了,结果是我们的价值“缠”范围的开始。对于非整数数据类型溢出变量并不总是缠绕的范围,所以不要依赖发生

下面一段解释了为什么我们结束后得到0值溢出。它是可选的阅读。如果所有这些二进制的东西是混乱的你可以跳过它

数字65535表示的位模式1111 1111 1111 1111元。65535是数量最多的一个无符号2字节(16位)的整数可以持有,因为它使用的所有16位。当我们添加1的值,该值应为65536。然而,65536位模式表示为二进制为1 0000 0000 0000 0000,这是17位!因此,最高点(即1)丢失,和低16位都是左。0000 0000 0000 0000,对应于0位模式这是我们的结果

同样地我们可以溢出区间的底部


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值