2.3 C++赋值运算符与表达式 | 将有符号数据赋给无符号

举报
C语言入门到精通 发表于 2021/02/23 02:43:45 2021/02/23
【摘要】 赋值运算符小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量。比如,把常量5的值赋给变量x。x=5; 也可以把一个表达式的值赋给变量int x; x=3+5*2; 赋值过程中的类型转换在赋值的过程中会自动的进行类型转换,将浮点型数据赋值给整型变量时,会舍弃小数部分。将整型数据赋值给浮点型时,数值不会发生变化,但是会以指数形式存储到变量中。将dou...

赋值运算符

小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量。

比如,把常量5的值赋给变量x。

x=5;


也可以把一个表达式的值赋给变量

int x;
x=3+5*2;

赋值过程中的类型转换

在赋值的过程中会自动的进行类型转换,将浮点型数据赋值给整型变量时,会舍弃小数部分。

将整型数据赋值给浮点型时,数值不会发生变化,但是会以指数形式存储到变量中。

将double型数据给float型数据赋值时,要注意数值范围不能溢出。

字符型数据赋值给整型变量时,是将字符在ASCII码表中的值赋给了整型变量。

将int,short,long型数据赋给char型变量时,是将其低8位原封不动的送到char型变量。

将signed型数据赋给长度一样的unsigned型变量时,将存储单元内容原样赋过去。

复合赋值运算符

x+=4; //等价于x=x+4
x*=y+1; //等价于x=x*(y+1)

C++使用复合运算符可以简化程序,使之更加精炼,提高编译效率。

赋值表达式

将一个变量和一个表达式连接起来的式子可以称为赋值表达式。

一般形式

<变量><赋值运算符><表达式>

x=y=z=2; //赋值表达式的值为2,xyz值都为2
x=1+(y=2); //表达式值为3,y的值为2,=右边值为3

案例:将有符号数据赋值给无符号变量,并输出。

#include<iostream>
using namespace std;
int main() //主函数
{
  unsigned short num_1; //定义无符号变量
  short int num_2=-10; //定义有符号的短整型变量且赋值
  num_1=num_2; //赋值
  cout<<num_1<<' '<<num_2<<endl; //输出
  return 0;
}

执行本程序之后,则会输出65526 -10。

会先获取-10的补码,16个二进制位,将它传给num_1,num_1是无符号型变量,补码的16个二进制位的十进制是65526。

2.3 C++赋值运算符与表达式 | 将有符号数据赋给无符号 mp.weixin.qq.com

文章来源: zhuanlan.zhihu.com,作者:,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/324762017

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。