java 变量数据类型转换?byte, short, char, int, long, float, double

float=3.5因为浮点型常量是double,所以要写成(float)3.5但是byteb=3;3是int类型的为什么可以呀?byteb1=3;byteb2=4;byt... float = 3.5 因为浮点型常量是double ,所以要写成(float)3.5 但是 byte b = 3; 3是int类型的 为什么可以呀?
byte b1 = 3; byte b2 = 4; byte b = b1-b2;报错的?那我定义的b1,b2不是没意义?
char c1 = 'c'; char c2 = 23;23是int类型?它们默认排序不是这样么?
byte, short, char, int, long, float, double
展开
 我来答
百度网友a05371a
推荐于2018-05-10
知道答主
回答量:39
采纳率:0%
帮助的人:31.7万
展开全部
简单数据类型之间的转换
在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double

自动类型转换
低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r
char c='c';
int i=c;
System.out.println("output:" i);
输出:output:99;
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99;char c=(char)i;System.out.println("output:" c);
public class TestBasicTypeConvert {
static void prt(String s) {
System.out.println(s);
}
void f1(long x) { prt("f1(long)"); }
void f1(float x) { prt("f1(float)"); }
void f1(double x) { prt("f1(double)"); }
public static void main(String [] args){
TestBasicTypeConvert tbConvert=new TestBasicTypeConvert();
tbConvert.f1(1);
}

}
//f1(long)

高转低则要强转
tighterman
2012-04-12 · TA获得超过2780个赞
知道答主
回答量:631
采纳率:0%
帮助的人:199万
展开全部
byte b1 = 3; byte b2 = 4; byte b = b1-b2这个之所以报错,是因为在进行b1-b2的运算时,会自动将b1和b2提升成int型,所以最后结果也是int型,需要进行强制装换,才能赋值给byte型变量

默认排序你似乎有点搞错,应该是byte,char,short,int,long,float,double
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式