public class TestByte {
public static void main(String[] args) {
testNot();
testOR();
testAnd();
testLeftMove();
testRigthMove();
testNosige();
xor();
}
/**
* 测试非
* ~
*结果
* .. -4 -3 -2 -1 0 1 2 3 ..
* 0-->-1
* 1-->-2
* 2-->-3
* 3-->-4
* -1-->0
* -2-->1
* -3-->2
*/
public static void testNot(){
int i=0;
int j=1;
int t=2;
int k=3;
println(~i,"测试非~0");
println(~j,"测试非~1");
println(~t,"测试非~2");
println(~k,"测试非~3");
System.out.println("");
j=-1;
t=-2;
k=-3;
println(~j,"测试非~-1");
println(~t,"测试非~-2");
println(~k,"测试非~-3");
System.out.println("------------------------------");
}
/**
* 换成二进制,要组成相同的位数;再进行比较;最后换成10进制
* 1-->1=1
* 1-->0=1;
* 0-->1=1;
* 0-->0=0;
* 测试位或
* |
*/
public static void testOR(){
println(4|20,"测试位或 4|20");
println(5|12,"测试位或 5|12");
println(6|28,"测试位或 6|28");
println(7|4,"测试位或 7|4");
System.out.println("------------------------------");
}
/**
* 换成二进制,要组成相同的位数;再进行比较;最后换成10进制
* 1-->1=1
* 1-->0=0;
* 0-->1=0;
* 0-->0=0;
* 测试位与
* &
*/
public static void testAnd(){
println(20&4,"测试位与 20&4");
println(12&5,"测试位与 12&5");
println(28&6,"测试位与 28&6");
println(4&7,"测试位与4&7");
System.out.println("------------------------------");
}
/**
*
* 测试左移
* <<
*/
public static void testLeftMove(){
/**
* 8左移3位
* 8的二进制是:1000;最后要判断8是的类型;类型不同;转换的结果也不能;int=32位;long=64位;byte=1位
* 这里8是int;所以8的最后结果是:0000 0000 0000 0000 0000 0000 0000 1000
* 向左去掉三位;最后在右边补三位;结果是:0 0000 0000 0000 0000 0000 0000 1000 000
* 然后换成十进制是64
*
*/
println(8<<3, "8左移3位");
println(35<<3, "35左移3位");
System.out.println("------------------------------");
}
/**
* 测试右移
* >>
*/
public static void testRigthMove(){
/**
* 12右移3位
* 12的二进制值是: 0000 0000 0000 0000 0000 0000 0000 1100
* 向右去掉三位;最后在左边补三位;结果是:000 0000 0000 0000 0000 0000 0000 0000 1
* 然后换成十进制是1
*/
println(12>>3, "12右移3位");
println(25>>3, "25右移3位");
System.out.println("------------------------------");
}
/**
* 测试无符号算数右移
* >>>
*/
public static void testNosige(){
/**
* 无符号右移好像和右移算位一样哦;不过要确定数值类型
*/
println(48>>>3, "48无符号右移3位");
println(101>>>3, "101无符号右移3位");
System.out.println("------------------------------");
}
/**
* 异或
* 真^假=真
* 假^真=真
* 假^假=假
* 真^真=假
* 1-->1=0
* 1-->0=1;
* 0-->1=1;
* 0-->0=0;
*/
public static void xor(){
//异或
System.out.println(true^false);
System.out.println(false^true);
System.out.println(true^true);
System.out.println(false^false);
/**
* 1=010
* 6=110
* 结果是:100换成十进制就是4
*/
System.out.println(2^6);
System.out.println(6^1);
System.out.println(6^6);
System.out.println(0^0);
System.out.println(1^1);
}
public static void println(Object j,String msg){
System.out.println(msg+":\t"+j);
}
}
分享到:
相关推荐
1. **数据概述**:提供了一系列的统计量计算,如平均值、中位数、众数、方差、标准差等,帮助开发者快速了解数据集的基本特性。 2. **比较**:包括了各种比较操作,例如T检验、Mann-Whitney U检验、Kolmogorov-...
1. **控制精度**:通过设置`BigDecimal`的精度,可以决定计算到多少位小数。 2. **避免误差**:避免了浮点数运算中的舍入误差,确保了计算结果的精确性。 3. **易用性**:通过封装成工具类,开发者可以更方便地在...
实现通过ip地址和子网掩码位数计算得出子网段的ip地址范围
Java IP地址网段计算的示例代码 Java IP地址网段计算是网络编程中的一个重要概念,它可以帮助开发者计算出某个IP地址的网段信息,包括网段的起始IP、结束IP和子网掩码等。在Java语言中,可以使用各种算法和技巧来...
"java高精度计算算法与分析" java高精度计算是指在java编程语言中对数字进行高精度计算的方法和技术。高精度计算是指在计算过程中保持尽可能高的精度,以避免计算结果的不确定性和差异。java高精度计算通常是指使用...
例如,可以存储一系列数值进行统计分析,如平均值、中位数、众数的计算。此外,Map接口可用于关联数值,如查找特定数值的频率。 数值计算中,矩阵运算是一种常见的操作。虽然Java标准库没有内置的矩阵类,但可以...
在Java编程语言中,计算一个对象的大小是一个相对复杂的过程,因为对象的内存布局涉及到多个因素,包括对象头、实例字段、对齐填充等。这个主题通常与性能优化和内存管理有关,尤其是在处理大规模数据结构时。这篇...
本节将详细介绍十六进制字符串的按位异或运算以及如何在Java中实现这一运算。 十六进制字符串是由0到9和A到F(或a到f)组成的字符序列,每个字符代表4位二进制数。例如,十六进制数"AB"在二进制下表示为10101011。...
### Java 实现计算一个文件的16位校验和 #### 概述 本文将详细介绍如何使用Java编写一个程序来计算文件的16位校验和。校验和是一种简单的错误检测方法,常用于文件传输过程中确保数据完整无损地到达目的地。16位...
在Java编程中,处理数学表达式的计算是一项常见的任务,尤其在需要动态计算或者解析用户输入时。本主题将深入探讨如何在Java中实现一个数学表达式计算器,这通常被称为"Expression Evaluator"。我们将讨论相关的技术...
在Java编程语言中,实现并行计算圆周率是一项挑战性的任务,但通过利用多线程和适当的算法,我们可以大大提高计算效率。在这个项目中,我们关注的是如何在4个线程的状态下,3分钟内计算出圆周率的第62到63万位小数。...
本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四舍五入保留两位小数 四舍五入是数学中的一个基本概念,指的是当一个数的小数部分小于等于0.5时,将其...
Java数值计算算法编程是计算机科学中的一个重要领域,它涉及到如何使用Java语言进行高效且精确的数学运算。在Java中,数值计算涵盖了广泛的算法和技术,包括基本的算术运算、复杂数学函数、线性代数、微积分、概率...
本篇文章将详细讲解如何利用Java编程语言实现这一功能,主要基于给定的"经纬度计算"标签以及压缩包中的"Caculate.java"源码。 首先,我们了解地球坐标系统。在地理坐标系统中,每个位置由经度和纬度来表示,经度...
通过这个项目,开发者可以学习到如何在Java中创建图形用户界面(GUI)以及如何处理用户输入和执行相应的计算操作。 二、核心技术 1. Java Swing:作为Java的GUI库,Swing提供了丰富的组件,如按钮、文本框、标签等...
### Java保留两位小数的方法详解 #### 方法一:使用`BigDecimal` **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则...
在Java编程语言中,计算圆周率是一项挑战性的任务,特别是在处理大数运算时。圆周率(Pi)是数学中的一个无理数,表示一个圆的周长与其直径之比,通常用希腊字母π表示。Java提供了多种方法来计算圆周率,包括基本...
Java 11是Oracle公司发布的Java Standard Edition (Java SE) 的一个重要版本,它在Java的生态系统中占据着核心地位,广泛应用于服务器端开发、桌面应用、移动应用以及云计算平台等。Windows 64位版本是专为在Windows...
以下是关于Java JDK 1.8的一些关键知识点,特别是针对64位和32位系统的差异: 1. **Java版本**:Java 1.8是Oracle公司发布的Java平台标准版(Java SE)的一个版本,也被称为Java 8。这个版本在2014年发布,引入了...
Java 64位JDK是Java Development Kit的64位版本,专为Windows操作系统设计。在深入探讨这个主题之前,我们需要理解几个基本概念。 首先,Java JDK是开发和运行Java应用程序所需的核心组件,包括Java编译器(javac)...