有关unsigned和有符号类型的区别
来源:互联网 发布:gta5优化好吗 编辑:程序博客网 时间:2024/04/29 19:19
相信大家对于unsigned
这个玩意并不陌生,但是有的时候却会被它搞懵,比如下面:
#include<iostream>using std::cout;using std::cin;using std::endl;int main(int argc,char *argv[]){ char a = 255; char b = 256; unsigned char c = 255; unsigned char d = 256; cout << (int)a << endl; cout << (int)b << endl; cout << (int)c << endl; cout << (int)d << endl; return 0;}
对于这个问题,我的理解是:unsigned
和普通有符号类型我们都可以将其看做是一个钟表
,以char
为例,如下所示:
如上面的代码所示,从0-127是不改变的,然后实际上128 = -128,129 = -127又依次循环到256 = 0,这就能解释为什么255 = -1了。实际上unsigned
和有符号的区别就在于大于128之后的部分。
和无符号类型的相似,在128之后不是从-128再次开始,而是一直到256就归0了,然后再继续,所以相当于unsigned就将同类型的无符号类型的扩大了一倍。
对于类型选择问题,有下面三个原则:
1:要是确定是无符号类型就用unsigned
。
2:要是int
类型大小不够,就用long long
,因为int
一般和long
是一样大的。
3:要是考虑到精度的问题,能用double
的就用double
不用float
。
0 0
- 有关unsigned和有符号类型的区别
- c语言中无符号(unsigned)和有符号(signed)的区别
- 有符号和无符号 unsigned signed
- char,unsigned char,unsigned short,有符号和无符号之间的转换
- C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题
- C++中有符号类型(int)和无符号类型(unsigned int)混合算术运算的类型转换会出现的问题
- 无符号类型和有符号类型的比较是个坑
- signed 与 unsigned 有符号和无符号数
- 有符号类型和无符号类型
- mysql有符号和符号类型占用的存储空间
- 有关int与unsigned的区别
- 理解有符号数和无符号数的区别
- C语言中有关有符号数和无符号数的练习
- unsigned 和 signed 的区别
- char和unsigned的区别
- 请问Delphi调用VC写的dll,有传入和传出参数都是unsigned char*运行中有有关问题
- /符号和\符号的区别
- 把char定义为有/无符号类型,如同signed char/unsigned char
- 17、反射和正则表达式
- OC中的几个基础知识点
- shell脚本中通道符使用注意
- Android HandlerThread 源码分析
- 九度OJ 题目1088:剩下的树
- 有关unsigned和有符号类型的区别
- block
- BZOJ2194: 快速傅立叶之二
- 蓝桥杯:基础练习 数列排序
- Python 高级特性之 reduce( )
- favicon.ico制作
- noitatumrePtxeN.31
- Hive学习6_CentOS6.5下Hive2.1安装
- KMP模板