精华内容
下载资源
问答
  • c语言 赋值过程中的类型转换

    千次阅读 2018-06-24 10:56:05
    如果赋值运算符两侧的类型一样,则直接进行赋值,当赋值运算符两侧的类型不一样时,在赋值时要进行类型转换,转换是由系统自动进行进行的,规则如下:(一)把浮点型数据赋值给整型变量时,要先进行取整操作(去掉...

    如果赋值运算符两侧的类型一样,则直接进行赋值,当赋值运算符两侧的类型不一样时,在赋值时要进行类型转换,转换是由系统自动进行进行的,规则如下:

    (一)把浮点型数据赋值给整型变量时,要先进行取整操作(去掉小数部分),然后再赋值给整型变量。假设a为整型变量,执行a = 4.7后,a = 4 。

    (二)将整型数据赋值给浮点型变量时,会将整型数据以浮点数的形式赋值给变量。假设b为单/双精度实数,执行 b = 4 后,b = 4.0   会以单/双精度实数形式来存储。

    (三)将单精度赋值给双精度变量时,内存变为双精度类型存储大小,数值不变,有效位数扩展到15位,将双精度数据类型赋值给单精度变量时,先将双精度数转换为单精度,即只取6~7位有效数字。应注意双精度数值的大小不能超过单精度型变量的数值范围

    (四)字符型数据赋值给整型变量时,将字符的ASCLL代码赋给整型变量。例如 :i ='A'   =>     i = 65

      (五)将一个占字节多的整型数据赋给一个占字节少的整型变量时(例如把int 赋值给short),只将其低字节原封不动的赋给变量(即发生截断)。

    在进行赋值时,尽量避免将字节多的数据赋值给字节少的数据,因为赋值后数据可能会出现失真,如果一定要赋值,应当保证赋值后数值不会发生改变,即所赋的值在变量的允许数值范围内。

    展开全文
  • (1)将浮点型数据赋给整型变量时,浮点型小数部分舍弃,只留下整数部分即可,例如:float a=3.141; 转换之后a =3. (2):整型数据给单 双精度时,数值不变,后面加小数点即可。例如 a=3,转换之后为a=3.0 (3):...

    赋值表达式也就是有“=”的式子,赋值表达式的左边是一个可修改的值,常为常亮,被赋予空间,但是算术表达式里有字母不可以作为“左边的值”
    例如:a+b
    常量也不可以作为左边的值,因为常量不能被赋值,不分配空间。

    类型转换:
    (1)将浮点型数据赋给整型变量时,浮点型小数部分舍弃,只留下整数部分即可,例如:float a=3.141; 转换之后a =3.
    (2):整型数据给单 双精度时,数值不变,后面加小数点即可。例如 a=3,转换之后为a=3.0
    (3):double类型给float类型时,双精度转换成单精度,只取6-7位小数即可,反过来float类型给double类型,则有效位数扩展到15位
    (4) 字符型数据赋值给整型变量时,将字符的ASCII代码赋给整型变量即可。

    另外if语句中不可出现赋值语句,只能是表达式,
    例如:if (a=b;);
    这样是不对的,a=b是可以的 ,可以上机实验一下

    在这里插入图片描述
    改正之后:
    在这里插入图片描述
    在这里插入图片描述

    所以if条件中不能出现语句。

    展开全文
  • 赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“a=3”的作用是执行一次赋值操作(或称...1) 将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。 2) 将整型数据赋给

    赋值运算符

    赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“a=3”的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。也可以将一个表达式的值赋给一个变量。

    赋值过程中的类型转换

    如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时会自动进行类型转换。

    1)  将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。

    2)  将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中。

    3) 将一个double型数据赋给float变量时,要注意数值范围不能溢出。

    4)  字符型数据赋给整型变量,将字符的ASCII码赋给整型变量。

    5) 将一个int、short或long型数据赋给一个char型变量,只将其低8位原封不动地送到char型变量(发生截断)。例如
    short int i=289;
    char c;
    c=i; //将一个int型数据赋给一个char型变量
    赋值情况见图2.8。为方便起见,以一个int型数据占两个字节(16位)的情况来说明。


    图2.8

    6) 将signed(有符号)型数据赋给长度相同的unsigned(无符号)型变量,将存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。

    【例2.5】将有符号数据传送给无符号变量。

    复制纯文本新窗口
    1. #include <iostream>
    2. using namespace std;
    3. int main( )
    4. {
    5. unsigned short a;
    6. short int b=-1;
    7. a=b;
    8. cout<<“a=”<<a<<endl;
    9. return 0;
    10. }
    #include <iostream>
    using namespace std;
    int main( )
    {
      unsigned short a;
      short int b=-1;
      a=b;
      cout<<"a="<<a<<endl;
      return 0;
    }

    运行结果为
    a=65535

    赋给b的值是-1,怎么会得到65535呢?请看图2.9所示的赋值情况。


    图2.9

    -1的补码形式为1111111111111111(即全部16个二进制位均为1),将它传送给a,而a是无符号型变量,16个位全1是十进制的65535。如果b为正值,且在0~32767之间,则赋值后数值不变。

    不同类型的整型数据间的赋值归根结底就是一条:按存储单元中的存储形式直接传送。

    C和C++使用灵活,在不同类型数据之间赋值时,常常会出现意想不到的结果,而编译系统并不提示出错,全靠程序员的经验来找出问题。这就要求编程人员对出现问题的原因有所了解,以便迅速排除故障。

    复合的赋值运算符

    在赋值符“=”之前加上其他运算符,可以构成复合的运算符。如果在“=”前加一个“+”运算符就成了复合运算符“+=”。例如,可以有
    a+=3  等价于  a=a+3
    x*=y+8等价于  x=x*(y+8)
    x%=3  等价于  x=x%3
    以“a+=3”为例来说明,它相当于使a进行一次自加3的操作。即先使a加3,再赋给a。同样,“x*=y+8”的作用是使x乘以(y+8),再赋给x。

    为便于记忆,可以这样理解:

    1. a+= b(其中a为变量,b为表达式)
    2. a+= b (将有下划线的“a+”移到“=”右侧)
    3. a = a + b  (在“=”左侧补上变量名a)

    注意,如果b是包含若干项的表达式,则相当于它有括号。如

    1. x %= y+3
    2. x %= (y+3)
    3. x = x%(y+3)(不要错认为x=x%y+3)

    凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。C++可以使用以下几种复合赋值运算符:
    +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
    其中后5种是有关位运算的。

    C++之所以采用这种复合运算符,一是为了简化程序,使程序精炼,二是为了提高编译效率(这样写法与“逆波兰”式一致,有利于编译,能产生质量较高的目标代码)。专业的程序员在程序中常用复合运算符,初学者可能不习惯,也可以不用或少用。

    赋值表达式

    由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:
    <变量> <赋值运算符> <表达式>
    如“a=5”是一个赋值表达式。对赋值表达式求解的过程是:先求赋值运算符右侧的“表达式”的值,然后赋给赋值运算符左侧的变量。一个表达式应该有一个值。赋值运算符左侧的标识符称为“左值”(left value,简写为lvalue)。并不是任何对象都可以作为左值的,变量可以作为左值,而表达式a+b就不能作为左值,常变量也不能作为左值,因为常变量不能被赋值。

    出现在赋值运算符右侧的表达式称为“右值”(right value,简写为rvalue)。显然左值也可以出现在赋值运算符右侧,因而左值都可以作为右值。如:
    int a=3,b,c;
    b=a;// b是左值
    c=b;// b也是右值
    赋值表达式中的“表达式”,又可以是一个赋值表达式。如
    a=(b=5)
    下面是赋值表达式的例子:
    a=b=c=5  (赋值表达式值为5,a,b,c值均为5)
    a=5+(c=6)(表达式值为11,a值为11,c值为6)
    a=(b=4)+(c=6)  (表达式值为10,a值为10,b等于4,c等于6)
    a=(b=10)/(c=2) (表达式值为5,a等于5,b等于10,c等于2)
    请分析下面的赋值表达式:
    (a=3*5)=4*3
    赋值表达式作为左值时应加括号,如果写成下面这样就会出现语法错误:
    a=3*5=4*3
    因为3*5不是左值,不能出现在赋值运算符的左侧。

    赋值表达式也可以包含复合的赋值运算符。如
    a+=a-=a*a
    也是一个赋值表达式。如果a的初值为12,此赋值表达式的求解步骤如下:

    1. 先进行“a-=a*a”的运算,它相当于a=a-a*a=12-144=-132。
    2. 再进行“a+=-132”的运算,它相当于a=a+(-132)=-132-132=-264。
    展开全文
  • 赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“a=3”的作用是执行一次赋值操作(或称赋值运算)。...1) 将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。 2) 将

    赋值运算符

    赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“a=3”的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。也可以将一个表达式的值赋给一个变量。

    赋值过程中的类型转换

    如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时会自动进行类型转换。

    1)  将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。

    2)  将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中。

    3) 将一个double型数据赋给float变量时,要注意数值范围不能溢出。

    4)  字符型数据赋给整型变量,将字符的ASCII码赋给整型变量。

    5) 将一个int、short或long型数据赋给一个char型变量,只将其低8位原封不动地送到char型变量(发生截断)。例如
       short int i=289;
       char c;
       c=i; //将一个int型数据赋给一个char型变量
    赋值情况见图2.8。为方便起见,以一个int型数据占两个字节(16位)的情况来说明。


    图2.8

    6) 将signed(有符号)型数据赋给长度相同的unsigned(无符号)型变量,将存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。

    【例2.5】将有符号数据传送给无符号变量。

    #include <iostream>
    using namespace std;
    int main( )
    {
      unsigned short a;
      short int b=-1;
      a=b;
      cout<<"a="<<a<<endl;
      return 0;
    }
    运行结果为
    a=65535

    赋给b的值是-1,怎么会得到65535呢?请看图2.9所示的赋值情况。


    图2.9

    -1的补码形式为1111111111111111(即全部16个二进制位均为1),将它传送给a,而a是无符号型变量,16个位全1是十进制的65535。如果b为正值,且在0~32767之间,则赋值后数值不变。

    不同类型的整型数据间的赋值归根结底就是一条:按存储单元中的存储形式直接传送。

    C和C++使用灵活,在不同类型数据之间赋值时,常常会出现意想不到的结果,而编译系统并不提示出错,全靠程序员的经验来找出问题。这就要求编程人员对出现问题的原因有所了解,以便迅速排除故障。

    复合的赋值运算符

    在赋值符“=”之前加上其他运算符,可以构成复合的运算符。如果在“=”前加一个“+”运算符就成了复合运算符“+=”。例如,可以有
        a+=3  等价于  a=a+3
        x*=y+8等价于  x=x*(y+8)
        x%=3  等价于  x=x%3
    以“a+=3”为例来说明,它相当于使a进行一次自加3的操作。即先使a加3,再赋给a。同样,“x*=y+8”的作用是使x乘以(y+8),再赋给x。

    为便于记忆,可以这样理解:
    1. a+= b(其中a为变量,b为表达式)
    2. a+= b (将有下划线的“a+”移到“=”右侧)
    3. a = a + b  (在“=”左侧补上变量名a)

    注意,如果b是包含若干项的表达式,则相当于它有括号。如
    1. x %= y+3
    2. x %= (y+3)
    3. x = x%(y+3)(不要错认为x=x%y+3)
     
     

    凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。C++可以使用以下几种复合赋值运算符:
        +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
    其中后5种是有关位运算的。

    C++之所以采用这种复合运算符,一是为了简化程序,使程序精炼,二是为了提高编译效率(这样写法与“逆波兰”式一致,有利于编译,能产生质量较高的目标代码)。专业的程序员在程序中常用复合运算符,初学者可能不习惯,也可以不用或少用。

    赋值表达式

    由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:
        <变量> <赋值运算符> <表达式>
    如“a=5”是一个赋值表达式。对赋值表达式求解的过程是:先求赋值运算符右侧的“表达式”的值,然后赋给赋值运算符左侧的变量。一个表达式应该有一个值。赋值运算符左侧的标识符称为“左值”(left value,简写为lvalue)。并不是任何对象都可以作为左值的,变量可以作为左值,而表达式a+b就不能作为左值,常变量也不能作为左值,因为常变量不能被赋值。

    出现在赋值运算符右侧的表达式称为“右值”(right value,简写为rvalue)。显然左值也可以出现在赋值运算符右侧,因而左值都可以作为右值。如:
        int a=3,b,c;
        b=a;// b是左值
        c=b;// b也是右值
    赋值表达式中的“表达式”,又可以是一个赋值表达式。如
        a=(b=5)
    下面是赋值表达式的例子:
        a=b=c=5  (赋值表达式值为5,a,b,c值均为5)
        a=5+(c=6)(表达式值为11,a值为11,c值为6)
        a=(b=4)+(c=6)  (表达式值为10,a值为10,b等于4,c等于6)
        a=(b=10)/(c=2) (表达式值为5,a等于5,b等于10,c等于2)
    请分析下面的赋值表达式:
        (a=3*5)=4*3
    赋值表达式作为左值时应加括号,如果写成下面这样就会出现语法错误:
        a=3*5=4*3
    因为3*5不是左值,不能出现在赋值运算符的左侧。

    赋值表达式也可以包含复合的赋值运算符。如
        a+=a-=a*a
    也是一个赋值表达式。如果a的初值为12,此赋值表达式的求解步骤如下:
    1. 先进行“a-=a*a”的运算,它相当于a=a-a*a=12-144=-132。
    2. 再进行“a+=-132”的运算,它相当于a=a+(-132)=-132-132=-264。
    展开全文
  • 赋值兼容规则

    2019-09-23 23:31:40
    赋值之前,先把整型数据转换成双精度型数据,然后再把它赋给双精度型变量。这种不同类型数据之间的自动转换和赋值,称为赋值兼容。在基类和派生类对象之间也存有赋值兼容关系,基类和派生类对象之间的赋值兼容规则...
  • 1) 将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。 2) 将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中。 3) 将一个double型数据赋给float变量时,要注意数值范围不能溢出。 4)...
  • 赋值过程的类型转换

    2013-07-31 17:03:39
    (1)将实型数据(包括单、双精度)赋给整型变量时,先对实数取整(舍去小数部分),然后赋给整型变量。如:int a; a=3.14执行的结果是,a的值为3,以整数形式存储在存储单元中,小数部分.14将被舍弃。 (2)将整型...
  • 赋值 浮点数 优先级

    2018-02-12 18:04:30
    如果要得到3.333,就需要把其中一个整型改为浮点型或者直接定义为浮点型,如把10改为10.0或定义10为double型(双精度浮点型)。优先级:每一个运算都是有先后的就像数学里面的先算乘法再算加法一样,所以Java中的运算...
  • 4.5 基类与派生类对象之间的赋值兼容关系 在一定条件下,不同类型的数据之间可以进行类型转换,例如可以将整型数据赋给双精度型变量。 在赋值之前,先把整型数据转换为双精度型数据,然后再把它双精度型变量。这种...
  • 赋值中的类型转换

    2015-10-01 20:37:33
    赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下: (1) 浮点型与整型 ● 将浮点数(单双精度)转换为...(2) 单、双精度
  • 1:将实型数据(包括单,双精度)赋给整型变量时,先对实数取整(即舍去小数部分),然后赋予整型变量。 2:将整形数据赋给单双精度变量时,数值不变但以实数形式存储到变量中。 3:将一个double型数据赋给float...
  • 2:小数字面量为双精度浮点型(double) 3:不要把精度单位高的类型赋值给精度低的单位 long l = 0; int i = 0; i = l ;(x) 4:byte 和 short 除外 byte b = 0; short s = 0; 可以直接用整型的字面量...
  • 赋值运算符(1) 将实型数据赋给整型变量时:舍弃小数部分。例:i为整型变量,执行i=3.56的结果是使i的值为3.(2) 将整数赋给单、双精度变量时,数值不变,但以浮点数形式存放到变量中,如:23赋给float变量f,即...
  • unity3d-- 类型转换问题

    2015-10-30 10:01:00
    第一个问题 字符串转为数字 如果把字符串数字比如“1234”转换为1234呢 ...默认情况下, 整型可以直接赋值给浮点数,浮点数可以赋值给双精度 如果双精度浮点数 double 要赋值给 float ,float要赋值给 int ...
  • 类型转换

    2020-08-19 14:19:00
    将单、双精度浮点型数据赋给整型变量时,舍去小数部分,然后赋给整型变量。 int i = 3.56; // i = 3 将整型数据赋值给单、双精度浮点型变量时,数值不变,改变存储形式。 float i = 23; //i = 23.0 将double型...
  • 文章标题

    2017-12-10 23:58:53
    (1)将浮点型数据(包括单,双精度)赋给整型变量时,舍弃其小数部分。如i为整型变量,执行“i=3.56”的结果是使i的值为3,在内存中以整数形式存储。 (2)将整型数据赋值给浮点型变量时,数值不变,但以指数形式...
  • java 循环结构

    2021-03-09 09:42:36
    基本数据类型 基本数据类型 变量名=变量值;...双精度浮点型double(8个字节,小数的默认类型) 字符型:char(2个字节) 布尔型:boolean(只有两个值true和false) 注意:String不是基本数据类型,他是引用类型 ...
  • 2020-07-02

    2020-07-02 21:06:18
    1、浮点型:单精度 float4Byte 双精度:double 8Byte 1、求空间长度 sizeof 类型/变量名 2赋值运算符: = 注:1、左侧必须是左值(可变空间)  2、(等位赋值)可能出现溢出  3、不同类型之间赋值 浮点型—...
  • C++之多态性与虚函数

    2015-09-18 22:43:11
    我们有时候会把整型数据赋值给双精度类型的变量。在赋值之前,先把整形数据转换为双精度的,在把它赋值给双精度类型的变量。这种不同类型数据之间的自动转换和赋值,称为赋值兼容。同样的,在基类和派生类之间也存在...
  • double:双精度浮点型,精度为15位 关于数据赋值long赋值时,如果数据超过int长度,需要在数据后面加上L,代表此数据为long型,否则将报错 当float赋值时,需要加上f,因为默认为double型 byte,short,...
  • ServiceCodein $v0对应功能的调用码Arguments所需参数Results返回值print_int打印一个整型$v0 = 1$a0 = integer to be printed将要打印的整型赋值给 $a0print_float打印一个浮点$v0 = 2$f12 = float to be printed...
  • 变量的一些基本了解

    2021-03-16 14:52:08
    双精度浮点型 booleam—> 定义变量 声明变量 int变量名 赋值 给变量赋值 变量名+xx int chount=“你好”;错 int chount=10; 对 右边是值赋值给左边 基本算数运算符 +,-,*,/,++,–,% /取商 %取余 自动类型...
  • Fortran 编译注意事项

    2020-09-14 16:19:36
    Fortran 编译注意事项 高精度运算 如果要做精度要求很高的计算,一般在声明实数...后者的计算精度有时候还是不够,比如在计算1.0/3.0并赋值给一个双精度变量的时候,计算结果并不是0.3333333333333333,这里要改写成1.0

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

双精度赋值给整型