例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?

显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。

public class HelloWorld{
public static void main(String[] args) {
double heightAvg1=176.2;
int heightAvg2=(int)heightAvg1;
System.out.println(heightAvg1);
System.out.println(heightAvg2);
}
}

一开始heightAvg1double类型的,转换成int类型的话要(int)heightAvg1

规律一:当把大的类型转化为小的类型的时候,因为补码的换算问题,所以可能会产生一些想不到数据

int  i = 35;
byte b = (byte)i;

运行结果:35

int  i = 128;
byte b = (byte)i;

运行结果:-128

规律二:小数在转化为整数的时候是舍弃小数位

double d = 6.4;
int i = (int)d;

运行结果:6

扩展:数据的原反补三码

数据类型的最高位是符号位 --- 如果最高位是0,则表示一个正数;如果最高位是1,则表示一个负数。

计算机中存储的是数据的补码,计算的也是数据的补码

直接计算出来的二进制数字是数据的原码

如果是正数,那么原反补三码一致

int i = 7;

00000000 00000000 00000000 00000111 原码

00000000 00000000 00000000 00000111 反码

00000000 00000000 00000000 00000111 补码

如果是负数,那么反码是在原码的基础上,最高位不变,其余位0<->1;补码是在反码的基础上+1

int j = -9;

10000000 00000000 00000000 00001001 原码

11111111   11111111   11111111  11110110  反码

11111111   11111111   11111111  11110111  补码

注意:规定用-0表示当前类型的最小值

Java中的强制类型转换的更多相关文章

  1. 慕课网-安卓工程师初养成-2-10 Java中的强制类型转换

    来源:http://www.imooc.com/code/1241 相信小伙伴们也发现了,尽管自动类型转换是很方便的,但并不能满足所有的编程需要. 例如,当程序中需要将 double 型变量的值赋给一 ...

  2. Java中如何强制类型转换

    例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢? 显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小.此时就需要通过强制类型转换来 ...

  3. 关于Java中的基本数据类型转换

    Java中的基本类型有四种,其中整型分为byte.short.int.long,浮点型分为float.double,字符型char,布尔型boolean.8种类型的级别由低到高byte->sho ...

  4. Java中的基本类型转换,数据溢出原理

    java中的数据类型 java是一种强类型语言,在java中,数据类型主要有两大类,基本数据类型和引用数据类型,不同的数据类型有不同的数据存储方式和分配的内存大小. 基本数据类型中,各数据类型所表示的 ...

  5. JavaSE基础(十)--Java中的基本数据类型转换

    Java中的基本数据类型转换 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间 ...

  6. C#中的强制类型转换与as转换的区别

    C#中的强制类型转换 例如有ClassA与ClassB两个类创建两个类的对象进行转换 1 2 ClassA a = new ClassA();  ClassB b = new ClassB(); 如果 ...

  7. 谈 JavaScript 中的强制类型转换 (2. 应用篇)

    这一部分内容是承接上一篇的, 建议先阅读谈 JavaScript 中的强制类型转换 (1. 基础篇) 前两章讨论了基本数据类型和基本包装类型的关系, 以及两个在类型转换中十分重要的方法: valueO ...

  8. JS在if中的强制类型转换

    JS在if中的强制类型转换 众所周知,JS在很多情况下会进行强制类型转换,其中,最常见两种是: 1.使用非严格相等进行比较,对==左边的值进行类型转换 2.在if判断时,括号内的值进行类型转换,转化为 ...

  9. 详细理解javascript中的强制类型转换

    将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况:隐式的情况称为强制类型转换,JavaScript 中的强制类型转换总是返回标量基本类型值,如字符串.数字和布尔值. 如何理解: 类型转换 ...

随机推荐

  1. redhat9安装gcc(转)

    原文链接:http://blog.chinaunix.net/uid-20260767-id-118036.html 第一种方法: 相信现在还有不少人在用经典的RedHat9,毕竟他是完全免费的红帽L ...

  2. cursor游标(mysql)

    /* 游标 cursor 什么是游标?为什么需要游标 使用存储过程对sql进行编程的时候,我们查询的语句可能是数据是多个,它总是一口气全部执行,我们无法针对每一条进行判断.也就是说,我们无法控制程序的 ...

  3. PostgreSQL 系统参数调整及并行设置(转)

    转自:https://yq.aliyun.com/teams/5 OS 准备 # yum -y install coreutils glib2 lrzsz sysstat e4fsprogs xfsp ...

  4. jenkins执行xctool命令出现command not found问题解决方法

    1.控制台执行 echo $PATH 把输出的这句话复制 2.jenkins->系统管理->系统设置 勾选Environment variables,添加键值,键:PATH,值:刚才复制的 ...

  5. IR Cut Filter

    IR cut filter,即红外截止滤光片,它放在于LENS与Sensor之间.因人眼与CMOS Sensor对各波长的响应不同,人眼看不到红外光但sensor会感应,因此需要IR cut filt ...

  6. 【Shell脚本】逐行处理文本文件

    经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下: 1.通过read命令完成. read命令接收标准输入,或其他文件描 ...

  7. Android程序员学WEB前端(4)-HTML(4)-注册页面-Sublime

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76576031 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 注册页面1: <! ...

  8. [置顶] 不再迷惑,也许之前你从未真正懂得 Scroller 及滑动机制

    学习本来就是从困惑中摸索问题答案的过程,能够描述出来问题就已经成功了一半.只要发现了困扰你的东西是什么,那么你就离解答出来不远了.----肯尼斯 R. 莱伯德 一直以来,Android 开发中绕不过去 ...

  9. Suffix(hash+lcp+二分)

    题目链接: Suffix Consider n given non-empty strings denoted by s1 , s2 , · · · , sn . Now for each of th ...

  10. iOS怎么来实现关闭自动锁屏

    怎么来设置[UIApplication sharedApplication]   idleTimerDisabled 属性来控制自动锁屏的效果 // 把设置idleTimerDisabled的代码放到 ...