基本数据类型转换
【摘要】
讨论几种常见的类型转换
1,int和double的转换
int转double相当于乘以1.0
double转int相当于向下取整函数
2,相同位数的整数,有符号和无符号的转换
代码:
int x=-1; cout<<unsigned int(x)<<" ...
讨论几种常见的类型转换
1,int和double的转换
int转double相当于乘以1.0
double转int相当于向下取整函数
2,相同位数的整数,有符号和无符号的转换
代码:
-
int x=-1;
-
cout<<unsigned int(x)<<" ";
-
unsigned int y=4294967295;
-
cout<<int(y);
输出:
4294967295 -1
也就是说,相同位数的整数,相互转换的时候,不改变每一位的值,直接按照有无符号的自己的理解来理解就行。
3,不同位数的整数之间进行转换
以char和int为例
PS:程序员一定要理解char就是整数类型这个思想。
(1)有符号低位转高位
-
char c='\0';
-
cout<<int(c)<<" ";
-
cout<<int(--c)<<" ";
-
c='\0';
-
cout<<unsigned int(c)<<" ";
-
cout<<unsigned int(--c)<<" ";
输出:
0 -1 0 4294967295
也就是说,有符号低位转高位是填充首位,即以1开头的数就补上很多1,以0开头的数就补上很多0
(2)无符号低位转高位
-
unsigned char c='\0';
-
cout<<int(c)<<" ";
-
cout<<int(--c)<<" ";
-
c='\0';
-
cout<<unsigned int(c)<<" ";
-
cout<<unsigned int(--c)<<" ";
输出:
0 255 0 255
也就是说,无符号低位转高位是填充0
(3)高位转低位
-
long long x=(1LL<<63);
-
cout<<x<<" "<<int(x);
输出:
-9223372036854775808 0
也就是说,高位转低位是直接截取
文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nameofcsdn/article/details/105770444
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)