java中强制类型转换时,高位数截取成低位数的方法

	/**
	 * 强制类型转换中的补码、反码、原码一搞清楚
	 */
	int b=233;//正整数强转
	System.out.println((byte)b);
	//负数:原码的绝对值取反再加一      符号为不变
	//00000000 00000000 00000000 11101001
	//  1110 1001   补码
	//  1110 1000   反码
	//  1001 0111  原码    1+2+4+16 =-23

	b=-233;//负整数强转
	//10000000 00000000 00000000 11101001  补码
	//10000000 00000000 00000000 11101000  反码
	//11111111 11111111 11111111 00010111  原码
	//0001 0111 截取低八位     1+2+4+16= 23
	System.out.println((byte)b);

	//位运算   不知道
	int b2=10;
	System.out.println(~b2);
	//0000 1010
	//1111

  

时间: 2024-10-19 14:56:55

java中强制类型转换时,高位数截取成低位数的方法的相关文章

java中强制类型转换

在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换.因为子类拥有比父类更多的属性.更强的功能,所以父类转换为子类需要强制.那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的. 当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了.在Java中我们可以通过

c#中的里氏转换和Java中强制类型转换在多态中的应用

在c#中: 注意: 子类并没有继承父类的构造函数,而是会默认调用父类那个无参数的构造函数. 如果一个子类继承了一个父类,那么这个子类除了可以使用自己的成员外,还可以使用从父类那里继承过来的成员.但是父类永远都只能使用自己的成员,而不能使用子类的成员. 子类之间也不能互相使用对方的成员. 里氏转换的概念: 1).子类可以赋值给父类 2).如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象. namespace 里氏转换_接口练习 { class Program { static void

Java基础---java中强制类型转换(八)

Java中的强制类型转换 相信小伙伴们也发现了,尽管自动类型转换是很方便的,但并不能满足所有的编程需要. 例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢? 显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小.此时就需要通过强制类型转换来实现了. 语法:( 数据类型 ) 数值 运行结果:  可以看到,通过强制类型转换将 75.8 赋值给 int 型变量后,结果为 75,数值上并未进行四舍五入,而是直接将小数位截断. 明白了吧,强

关于Java中强制类型转换的问题

为了更好的理解我们先看下面的例子: package com.yonyou.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * 测试类 * @author 小浩 * @创建日期 2015-3-2 */ public class Test{ public static void main(String[] args) { List<String> list=new Arr

【Java_基础】Java中强制类型转换

首先,狭义上的强制类型转换指的是引用类型,且是父类向子类转换,这种转换只牵扯到引用名义类型的转换,具体的对象内存没有发生一点变化. 而基本类型的转换与此不同,其数据确实发生了变化.如果是基本类型和其包装类的相互转化,实际上调用是Integer.parseInt()和Integer.valueOf()来完成. 父类向子类进行强制转换,如果成功不会有任何数据丢失,如果不是其子类,那么会报错.基本类型之间的转换,如果是大范围的向小范围的转换,确实有可能会发生数据丢失或精度丢失. 实例: public

Java中数据类型转换

1.Java的数据类型分为三大类 布尔型,字符型和数值型 其中数值型又分为整型和浮点型 2.Java的变量类型 布尔型 boolean 字符型 char 整型    byte,short,int,long 浮点型 float,double 3.数据类型转换 Java中数据类型转换分为三种,简单数据类型转换,字符串与其他类型转换,其他实用数据类型转换 (1)简单数据类型转换 在Java中,整型,实型,字符型被视为简单数据类型. 这些类型级别从低到高:(byte,short,char)-> int

2-5:Java中的类型转换

1.在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换.例如: 代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0 这种转换称为自动类型转换. 2.Java中的自动类型转换是需要满足特定的条件的: 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型.即同类型可以自动转换 目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节

是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常.在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”.很多时候,我们会... Coda 发布于 2015-04-12 14:09 评论(1)阅读(72) 1 http://www.djob.com/job_8EED14ACE3DE31D0.htmlhttp://www.

Java中字符串比较时==和equals的区别

==是比较两个字符串引用的地址是否相同,即是否指向同一个对象,而equals方法则比较字符串的内容是否相同. 例如String a = "abc"; String b = "abc"; a == b返回true,a.equals(b)同样返回true,这是为什么呢? 原来程序在运行时有一个字符串池,创建字符串时会先查找池中是否有相应的字符串,如果已经存在的话只需把引用指向它即可,如果没有则新建一个. 上例中创建a时,会在字符串池中首先创建一个"abc&qu