精华内容
下载资源
问答
  • java基本数据类型自动转换规则

    千次阅读 2017-08-03 09:38:02
    一、java基本数据类型 Java提供了八种基本类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型和一种布尔型。  整型: short, int, long, byte;  浮点型:float, double;  字符型:char;  ...

    一、java基本数据类型

    Java提供了八种基本类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型和一种布尔型。 
    整型: short, int, long, byte; 
    浮点型:float, double; 
    字符型:char; 
    布尔型:boolean. 
    Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或操作系统的改变而改变。



    二、非赋值运算,自动转换规则

    1)布尔型不参与转换

    2)规则: byte/char/short -> int ->  long -> float -> double

    2.1)例子:

    public class Test {
    	public static void main(String[] args) {
    		short a = 1;
    		byte b = 2;
    		char c = 3;
    		
    		//三个输出都是 class java.lang.Integer
    		System.out.println(getType(b+a));
    		
    		System.out.println(getType(b+c));
    		
    		System.out.println(getType(a+c));
    		
    	}
    	
    	public static String getType(Object o){
    		return o.getClass().toString();
    		}
    }
    2.2)规则具体讲解

    (2.2.1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。 
    (2.2.2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。 
    (2.2.3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。 
    (2.2.4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。 


    3)对比一下C语言



    三、赋值运算,自动转换规则

    将小范围类型变量转换成大范围类型的变量。Java会自动扩宽类型

    看上面那张图,各个基本数据类型的取值范围都有了,如果一个取值范围包括了另一个的,那么赋值时,小的可以自动转换成大的

    例子:     long d = 333;   float e = d; //可以

    short a = 1; char b = a; //不行,因为取值范围不是包含,而是交叉

    int a = 1; byte b = a; //不行,大的转成小的,要强制类型转换,byte b = (byte) a;


    四、一些值得注意的地方

    当运算符为取正运算符(+)。取负运算符(-)或按位取反运算符(~)时,如果操作数为byte、char或short,则先被转换为int,再参与运算



    展开全文
  • C语言基本数据类型转换规则

    千次阅读 2014-05-08 16:04:13
    C语言的基本数据类型;有点奇怪的是为什么float和double不用signed/unsigned修饰。 符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例 -- -- char 8 -2^7 ~ 2^7-1 %...

    C语言的基本数据类型;有点奇怪的是为什么floatdouble不用signed/unsigned修饰。

    符号属性

    长度属性

    基本型

    所占位数

    取值范围

    输入符举例

    输出符举例

    --

    --

    char

    8

    -2^7 ~ 2^7-1

    %c

    %c%d%u

    signed

    --

    char

    8

    -2^7 ~ 2^7-1

    %c

    %c%d%u

    unsigned

    --

    char

    8

    0 ~ 2^8-1

    %c

    %c%d%u

    [signed]

    short

    [int]

    16

    -2^15 ~ 2^15-1

    %hd

    unsigned

    short

    [int]

    16

    0 ~ 2^16-1

    %hu%ho%hx

    [signed]

    --

    int

    32

    -2^31 ~ 2^31-1

    %d

    unsigned

    --

    int

    32

    0 ~ 2^32-1

    %u%o%x

    [signed]

    long

    [int]

    32

    -2^31 ~ 2^31-1

    %ld

    unsigned

    long

    [int]

    32

    0 ~ 2^32-1

    %lu%lo%lx

    [signed]

    long long

    [int]

    64

    -2^63 ~ 2^63-1

    %I64d

    unsigned

    long long

    [int]

    64

    0 ~ 2^64-1

    %I64u%I64o%I64x

    --

    --

    float

    32

    +/- 3.40282e+038

    %f%e%g

    --

    --

    double

    64

    +/- 1.79769e+308

    %lf%le%lg %f%e%g

    --

    long

    double

    96

    +/- 1.79769e+308

    %Lf%Le%Lg

     

    基本类型转换有以下规则:

    1. 当有符号数与无符号数同类型进行运算时,会自动转化为无符号数进行运算;此时负数会用它的补码进行运算。

    2. 当不同类型数据进行运算时,会自动转换为高类型,具体转换规则如下。

        (为防止精度损失,类型总是被提升为较高的类型。)

    3. 赋值时:等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;高类型向低类型赋值时,精度丢失,长度变短。

    4. 函数调用时:将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参。

    5. 函数有返回值时:系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。

     

     


    展开全文
  • Java数据类型转换规则

    千次阅读 2019-03-30 16:39:40
    一、数据类型分类:主要分为 基本类型、引用... a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:  (1)布尔型和其它基本数据类型之间不能相互转换;  (2...

    欢迎大家访问我的个人博客:http://rushskh.club/

    一、数据类型分类:主要分为 基本类型、引用类型两大类;

     

    二、基本类型 转换原则 

    1、类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。
      a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:
      (1)布尔型和其它基本数据类型之间不能相互转换; 
      (2)byte型可以转换为short、int、、long、float和double; 
      (3)short可转换为int、long、float和double; 
      (4)char可转换为int、long、float和double; 
      (5)int可转换为long、float和double; 
      (6)long可转换为float和double; 
      (7)float可转换为double; 

      


    b、算术运算 中的类型转换:1 基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;2 byte short char运算会转换为Int;

    (1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。 

    (2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。 

    (3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。 

    (4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

    特殊: 

    (1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

    int num = Integer.MAX_VALUE ;
        	int num2 = Integer.MAX_VALUE ;
        	num += 2l ; //正确 += 将得到的强值转换为了目标变量类型
        	num2 = num2 + 2l ; //会报错 这样相当于将地类型的赋值给了高类型 不会实现自动转换

      (2)  当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;

    三、引用类型 转换原则

      1、基本类型 与 对应包装类 可自动转换,这是自动装箱和折箱的原理;    

     

            Integer c1 = new Integer(1);
            Integer c2 = 2;
            int cc = new Integer(3);
    
            //另:String 与 基本类型的互转
            int i = Integer.parseInt("13");
            int ii = Integer.valueOf("12");
    
            String s1 = String.valueOf(123);
            String s2 = Integer.toString(i);
            String s3 = "" + i;

      2、两个引用类型间转换:

        1、子类能直接转换为父类 或 接口类型;

        2、父类转换为子类要 强制类型转换;且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常;

      转载自:http://www.cnblogs.com/mzzcy/p/7052663.html

    展开全文
  • 关于基本数据类型转换规则

    千次阅读 2013-07-19 16:34:48
    关于基本数据类型转换规则: 1. 8种基本数据类型除boolean类型之外都可以相互转换. 2. 小容量向大容量转换叫做自动类型转换: byte  char 3. byte,short,char做混合运算的时候,各自都先转换成int在做运算 ...
    这部分内容,老师很好的讲解也给了例子,大家参照下例子,好好理解的。
    

    /*
    关于基本数据类型转换规则:
    1. 8种基本数据类型除boolean类型之外都可以相互转换.
    2. 小容量向大容量转换叫做自动类型转换:
    byte<short<int<long<float<double
        char<
    3. byte,short,char做混合运算的时候,各自都先转换成int在做运算

    4.大容量向小容量转换是强制类型转换,需要加强制转换符,
    编译虽然通过,运行期可能损失精度。谨慎使用。

    5.如果整数没有超出byte,short,char的取值范围,可以直接将这个整数赋值给byte,short,char

    6. 多种数据类型做混合运算,先转换成容量最大的那种再做运算。
    */
    例子:

    public class DataTypeTest06 {

    public static void main(String[] args) {

    //出现错误,1000超出了byte的范围
    //byte a = 1000;

    //正确,因为20没有超出byte范围
    //所以赋值
    byte a = 20;

    //变量不能重名
    //short a =  1000;

    //正确,因为数值1000没有超出short类型的范围
    //所以赋值正确
    short b =  1000;

    //正确,因为默认就是int,并且没有超出int范围
    int c = 1000;

    //正确,可以自动转换
    long d = c;

    //错误,出现精度丢失问题,大类型-->>小类型会出现问题
    //int e = d;

    //将long强制转换成int类型
    //因为值1000,没有超出int范围,所以转换是正确的
    int e = (int)d;

    //因为java中的运算会会转成最大类型
    //而10和3默认为int,所以运算后的最大类型也是int
    //所以是正确的
    int f = 10/3;

    //声明10为long类型
    long g = 10;

    //出现错误,多个数值在运算过程中,会转换成容量最大的类型
    //以下示例最大的类型为double,而h为int,所以就会出现大类型(long)到小类型(int)
    //的转换,将会出现精度丢失问题
    //int h = g/3;

    //可以强制转换,因为运算结果没有超出int范围
    //int h = (int)g/3;

    //可以采用long类型来接收运算结果
    //long h = g/3;

    //出现精度损失问题,以下问题主要是优先级的问题
    //将g转换成int,然后又将int类型的g转换成byte,最后byte类型的g和3运算,那么
    //它的运算结果类型就是int,所以int赋值给byte就出现了精度损失问题
    //byte h = (byte)(int)g/3;

    //正确
    //byte h = (byte)(int)(g/3);

    //不能转换,还有因为优先级的问题
    //byte h = (byte)g/3;

    //可以转换,因为运算结果没有超出byte范围
    //byte h = (byte)(g/3);

    //可以转换,因为运算结果没有超出short范围
    short h = (short)(g/3);

    short i = 10;

    byte j = 5;

    //错误,short和byte运算,首先会转换成int再运算
    //所以运算结果为int,int赋值给short就会出现精度丢失问题
    //short k = i + j;

    //可以将运算结果强制转换成short
    //short k = (short)(i + j);

    //因为运算结果为int,所以可以采用int类型接收
    int k  = i + j;

    char l = 'a';
    System.out.println(l);

    //输出结果为97,也就是a的ascii值
    System.out.println((byte)l);

    int m = l + 100;
    //输出结构为197,取得a的ascii码值,让后与100进行相加运算
    System.out.println(m);

    }
    }
    展开全文
  • JAVA数据类型转换规则

    千次阅读 2019-05-24 11:18:23
    数据类型转换规则 除布尔型以外的其它七种类型都可相互转换 小容量向大容量类型转换,称为自动转换。 大容量向小容量类型转换,称为强制转换。需要加强制类型转换符,程序才能编译通过。但会损失精度。 当整数字...
  • C语言中不同类型数据转换规则

    千次阅读 2018-05-25 20:26:00
    不同类型数据间的混合运算与类型转换 1.自动类型转换 在C语言中,自动类型转换遵循以下规则: ①若参与运算量的类型不同,则先转换成同一类型,然后进行运算 ②转换数据长度增加的方向进行,以保证...
  • 【C语言】不同类型数据转换规则

    千次阅读 2019-04-17 22:25:55
    转换规则: ①若参与运算量的类型不同,则先转换成同一类型,然后进行运算 ②转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算 a...
  • Java中数据类型转换规则

    千次阅读 2016-08-11 11:36:23
    Java中数据精度比较 byte
  • java中的基本数据类型转换规则

    千次阅读 2019-07-17 20:50:59
     a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:  (1)布尔型和其它基本数据类型之间不能相互转换;  (2)byte型可以转换为short、int、、long、f...
  • 整形数据(int,long,short):...由此引出的问题:隐式的类型转换,进制转换,以及数据类型的基本知识点,将在下一篇博客中总结。1、混合运算的类型转换规则 当二元运算符两边的操作数类型不同,但类型相容时,系统
  • 当进行数学运算时,数据类型会自动发生提升到运算符左右之较大者(最少会提升到int型) 由小转大:自动类型提升,直接赋值即可; 由大转小:需强制转换; ...
  • 基本数据类型 字符型:char 整数型:byte short int long 浮点型:float double 布尔型:boolean 字符型:char 1、char占用两个字节 2、char的取值范围:[0~65535] 3、char类型的字面量使用单引号括起来。...
  • 算术表达式的类型转换规则 1.对于单精度实型操作数,系统先将表达式中所有单精度实型(float型)操作数(常量或变量)转换为双精度实型,在参与运算。 2.对于字符型操作数,系统先将表达式中所有的字符型操作数...
  • 赋值类型转换

    2019-07-11 07:45:57
    变量赋初值 在编写程序的过程中常需要对一些变量预先设置初值,C语言允许在给定义变量的同时给变量赋初值 有以下几种述职方式 int x=5;...变量的数据类型可以转换,方法有两种,一种是自动转换,...
  • PL/SQL中的数据类型隐式转换规则

    千次阅读 2011-03-07 16:22:00
    During INSERT and UPDATE operations, Oracle converts the value to the datatype of the affected column. 对于INSERT和UPDATE操作,oracle会把插入值或者更新值隐式转换为字段的数据类型。如 假如id列...
  • 注意:需要了解自动转换规则,但是在实际应用中是要尽量避免自动转换的。 字符型变量:var_str 数值型变量:var_num 一、字符型变量→数值型变量 赋值:var_num=var_str; 参与算数运算:var_num=var_str+1; 与...
  • 一、JS需要类型转换的原因 JS是一种弱类型语言,变量没有类型限制,可以随意赋值。如: var a=5; console.log(typeof a);//number a='我是字符串'; console.log(typeof a);//string如上所示,当把数字5赋值给a...
  • 当绝没有弱类型那么随便,也就是说变量在声明时不需要指定数据类型,变量由赋值操作确定数据类型),所以在JavaScript的类型转换中就存在了强类型语言所没有的隐式转换。 1.1 JavaScript中的隐式转换(自动类型转换) ...
  • C++算术类型转换赋值类型转换

    千次阅读 2013-11-10 09:39:14
    自动类型转换指在算术运算以及在赋值过程中,如果运算符两边的操作数属于“类型相容”(指类型不同但系统可以自动进行转换)的情况,如整数、字符和实数之间,系统会自动进行类型转换,然后再做运算。包括:算术类型...
  • 在C的运算中以下四种情况会发生数据类型的隐式转换:  1、算术运算式中,低类型能够转换为高类型。  2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。  3、函数调用中参数传递时,...
  • 1. 基本数据类型的互转,在大转小时要注意值域,由于存储精度的不同,可能造成数据精度的损失或者溢出; 2. int转String 建议使用String.valueOf()方法,需要注意object为null时,返回值为字符串的"null"...
  • 我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则: 1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符 2. 不能以数字开头。如:123name 就是不...
  • C语言赋值类型转换

    千次阅读 2016-04-09 16:11:27
    C语言在赋值的时候,可能会遇到类型不一致的情况,在VC6.0的编译器里,如果类型不一致,一般会给个警告,然后做隐式转换,将=右边的类型转换为=号左边的类型,然后再赋值,这样就会有相应的数据精度的丢失与不一致:...
  • 变量赋值三要素:数据类型,变量名,值。 例: int age=18; 其中int表示整型,告诉我们age这个变量的值是个整数; 变量的命名通常使用小写字母开头,小驼峰的方式; 等号表示“赋值”,即把等号右侧的值赋给左侧...
  • 不同数据类型的相互转换

    千次阅读 2016-07-28 12:47:45
    不同数据类型的相互转换 首相强调一下那个关于各类型数值的长度以及取值范围的表格十分重要,必须附上:类型 关键字 长度(位) 取值范围 有符号字符型 【signed】char 8 -128–127 无符号字符型 unsigned char
  • 本文实例讲述了Python变量、数据类型数据类型转换相关函数用法。分享给大家供大家参考,具体如下: python变量的使用不需要进行类型声明(类型名 变量名),给一个变量名赋什么值就是什么类型。 变量的赋值使用 =...
  • 赋值中的类型转换

    千次阅读 2015-10-01 20:37:33
    赋值运算符两边的运算对象类型不同时,将要发生类型转换转换规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下: (1) 浮点型与整型 ● 将浮点数(单双精度)转换为整数时,将舍弃...
  • java中的数据类型,变量使用规则,自动类型转换
  • 数据类型的转换 C语言程序设计 数据类型的转换 隐式转换 什么情况下发生 运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式 函数...
  • c语言 赋值过程中的类型转换

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 149,053
精华内容 59,621
关键字:

不同数据类型的赋值转换规则