`
六十三
  • 浏览: 43117 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基本类型 加减运算 类型转换问题讨论

J# 
阅读更多

先来看下面的 代码:

 

public class Test
{	
	public static void main(String[] args)
	{
		short i ;
		
		i = i + 1; //编译错误
		i += 1;	//正确
		
		byte j = 1; //正确
		byte k = 2;
		byte l = j + k; //错误
	}
}
 

 

1、关于 i = i + 1: i + 1是int型,赋值给short 型变量需要做显示转换。

 

2、+= 、-= 属于复合赋值运算符(Compound Assignment Operator),他们是一种赋值运算符,虽然他们有算数的功能,但应该属于赋值运算符的范畴,而不属于算术运算符一类。

 

Java规定:复合赋值运算符中的转换都要编译器负责。

 

这就是为什么使用 += 、-=不需要显示转换的原因。

 

3、算术运算符(Arithmetic Operator)

Java中,所有整数的算术运算符都会产生int型的结果(除非有long参与其中)。因此 

 

byte l = j + k;

  虽然 j 、 k 都是byte型的,但根据上面“所有整数的算术运算都会产生int型的结果“的规则, j + k 结果是int型。这样将int赋值给byte 就需要强制转换。

 

 

 

 

 

 

 

 

david.wang 2011-03-09

分享到:
评论

相关推荐

    单片机课程设计计算器设计.docx

    实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示数据和...

    单片机课程设计——计算器设计.doc

    实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六 位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四 则运算,为了得到教好的显示效果,采用LCD显示数据和...

    单片机课程设计——计算器设计(1).doc

    实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六 位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四 则运算,为了得到教好的显示效果,采用LCD显示数据和...

    新概念C语言.李一波(带详细书签).pdf

    2.7.2 赋值运算中的类型转换 14 习题 15 第3章 顺序结构程序 16 3.1 复合语句和空语句 16 3.1.1 复合语句 16 3.1.2 空语句 16 3.2 程序举例 16 习题 17 第4章 选择结构 19 4.1 关系运算和逻辑运算 19 4.1.1...

    算法引论:一种创造性方法.[美]Udi Manber(带详细书签).pdf

    本书的特色有二,旨在提高读者的问题求解能力,使读者能够理解算法设计的过程和思想:一是强调算法设计的创造性过程,注重算法设计背后的创造性思想,而不拘泥于某个具体算法的详细讨论;二是将算法设计类比于定理...

    Visual C++ 2005入门经典--源代码及课后练习答案

    2.3.6 ISO/ANSI C++中的基本类型 49 2.3.7 字面值 50 2.3.8 定义数据类型的同义词 50 2.3.9 具有特定值集的变量 51 2.3.10 指定枚举常量的类型 52 2.4 基本的输入/输出操作 53 2.4.1 从键盘输入 53 ...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     ·分享c++程序的错误查找技术,并介绍通用的调试原则讨论每一个windows应用程序的结构和基本元素  ·举例说明如何使用mfc开发本地windows应用程序  ·指导读者用c++和c++/cli设计和创建大量的windows应用程序 ...

    C#微软培训资料

    6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 ...

    3D数学基础 图形与游戏开发

    作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于实践的C++类,并且在每章结尾处提供练习。《3D数学基础:图形与游戏开发》介绍了基础概念,如向量、坐标空间...

    计算机图形学实验报告.doc

    1) d1= 2b2–2a2b+a2 在生成椭圆下部区域时,以y轴为步进方向,如图所示: y每步进减一个单位,就需要在判断x保持不变还是步进加一个单位,对于下部区域, 计算出d1和d2分别是: d1=b2(xi+12-x2) d2=b2(x2-xi2) 以...

    windows环境下32位汇编语言程序设计

    用汇编写复杂的运算程序固然会比C更有效率,但同样的事在C中用一个表达式就全部搞定了,从这里开始学汇编,给人的感觉就像从复杂的公式开始学算术,要知道,加法还没有学会呢!而对于高级语言封装起来的系统功能,用...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用...

    图像处理基础(第2版).[美]Maria Petrou(带详细书签).pdf

    从其安排来看,基本内容是主干,而高级内容(放在63个框内,且有161个配合示例,编号前均加B)则分布在书中与相关基本内容对应的位置。如果把基本内容看作一个主程序,那么这些高级内容部分就像子程序,随时可在需要...

Global site tag (gtag.js) - Google Analytics