整型的赋值
来源:互联网 发布:男士学java好还是ui好 编辑:程序博客网 时间:2024/05/22 13:38
对象的类型决定对象的取值。这会引起一个疑问:当我们试着把一个超出其取值范围的值赋给一个指定类型的对象时,结果会怎样呢?答案取决于这种类型是 signed 还是 unsigned 的。
对于 unsigned 类型来说,编译器必须调整越界值使其满足要求。编译器会将该值对 unsigned 类型的可能取值数目求模,然后取所得值。比如 8 位的unsigned char,其取值范围从 0 到 255(包括 255)。如果赋给超出这个范围的值,那么编译器将会取该值对 256 求模后的值。例如,如果试图将 336 存储到 8 位的 unsigned char 中,则实际赋值为 80,因为 80 是 336 对 256 求模后的值。
对于 unsigned 类型来说,负数总是超出其取值范围。unsigned 类型的对象可能永远不会保存负数。有些语言中将负数赋给 unsigned 类型是非法的,但在 C++ 中这是合法的。C++ 中,把负值赋给 unsigned 对象是完全合法的,其结果是该负数对该类型的取值个数求模后的值。所以,如果把 -1 赋给8 位的 unsigned char,那么结果是 255,因为 255 是 -1 对256 求模后的值。当将超过取值范围的值赋给 signed 类型时,由编译器决定实际赋的值。在实际操作中,很多的编译器处理 signed 类型的方式和 unsigned 类型类似。也就是说,赋值时是取该值对该类型取值数目求模后的值。然而我们不能保证编译器都会这样处理 signed 类型。
- 整型的赋值
- 32_字符与整型的赋值
- 字符数组与整型数组的初始化和赋值对比
- C++中整型的超范围赋值问题
- 字符数组与整型数组的初始化和赋值对比
- 字符数组与整型数组的初始化和赋值对比
- 无符号整型赋值陷阱
- 无符号整型赋值陷阱
- 无符号整型赋值陷阱
- 二进制数给整型变量赋值?
- C++ 类的定义问题,为什么只有const static 整型变量才可以在类中定义并复赋值?
- memset函数不能给int(整型)数组初始化赋值
- 复习——将字符赋值给整型变量
- 如何通过键盘输入整型数给枚举变量赋值
- 整型的比较
- 整型的加减乘除运算
- matlab的整型数据
- 整型数据的溢出
- Windows 多线程 Mutex
- t-sql判断一个字符串是否为bigint的函数(全角数字需要判断为不合格)
- 复制大文件
- RCP:打开一个Editor的新窗口的实现代码
- 提高SQL语句执行效率的原则和方法
- 整型的赋值
- lzma/zlib的接口使用?
- .NET的FTP操作类
- PHP中this,self,parent的区别
- HDU2767 Proving Equivalences 图的强联通性
- Ubuntu上ftp安装配置
- URL编码问题
- 《团队之美》的那些作者们
- Resolve a URL from a Partial View (ASP.NET MVC)