java中 & ^ ~ 的运算】的更多相关文章

1byte(字节)=8bit(比特) 1 0 0 0 0 0 0 0 1   2进制的1的原码 反码 补码 0 0 0 0 0 0 0 0   2进制的0的原码 反码 补码 -1 1 0 0 0 0 0 0 1 计算机中真正参与运算的是  补码! 在java中所有的数字都是有符号的!  符号就是  正 0   负 1 最高位(最左边的)的 0和1 就是 符号位 什么是最高位? 就是最左边的数字! java中最小的单位是 byte(字节) 生活中我们买了一个50G的内存条! 插入到我们的电脑中 有…
java运算符 与(&).非(~).或(|).异或(^)   最近看HashMap源码,遇到了这样一段代码: 1 static final int hash(Object key) { 2 int h; 3 return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); 4 } 于是我整理学习了以下知识:1.十进制转二进制 原理:给定的数循环除以2,直到商为0或者1为止.将每一步除的结果的余数记录下来,然后反过来就得到相…
java中运算都是操作符号,那么整形默认为int,双精度默认为都double 整数 看案例: 无法编译通过:操作默认为int,接受结果为int,所以这个地方编译无法通过,所以需要强制类型转换 再看案例: 再看双精度: 这种是可以的,再看 这也是可以的,看结果: 精度损失.再看 结果: 再看多种案例: 看结果: 再看案例 : 看结果 那么会什么会出现这么多问题呢,原因 在数据结果,转为二进制的时候,比如0.3  转换为二进制如这么转换的 0.3*2->0.6->0.6*2>1.2   二进…
// ++自加 --自减 int a=9; a++; // a=a+1; System.out.println(a); // a=10 a--; // a=a-1 System.out.println(a); // a=9 int b=++a; //前加加就相似于 a=a+1 b=a int b=a++; //后加加就相似于 b=a a=a+1 System.out.println(a); System.out.println(b); // int b=++((++a)--) //报错 意外类型…
先上结论 模运算比与运算慢20%到30% 这是通过实验的方式得到的结论.因为没有大大可以进行明确指导,所以我以最终运行的结果为准.欢迎指正. 测试代码 @Test public void test10() { int a, b, temp, count = 100000000; long start, time; Random random = new Random(); while (true) { System.out.println("---------------------------…
一.位运算 (1)按 位 与 & 如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0.首先我们看一下对正数的运算        分别看一下正数和负数的具体运算步骤        正数直接取二进制运算,负数取反加一得补码再运算,得到的结果符号位为0,不需要做任何操                                                                                                        …
1.^(亦或运算) ,针对二进制,相同的为0,不同的为1 public static void main(String[] args) { System.out.println("2^3运算的结果是 :"+(2^3)); //打印的结果是: 2^3运算的结果是 :1 } 2 =======>0010 3 =======>0011 2^3就为0001,结果就是1 2.&(与运算) 针对二进制,只要有一个为0,就为0 还是上述的例子 public static void…
/* 目的:测试变量的运算方式 结果:byte a, b, c; a = b+c; 或者 a = b+10 形如这种形式的算式, 等式的右边的运算结果默认的都是int型的!因为等式右边有变量, 编译器无法确定变量的内容 ,因为它是变量!所以相加之后得到的int再默认强制转换成byte可能会损失精度. 而形如 a=4+5:这种常量的赋值,虽然 4 和 5 都默认的是int, 但都是常量,它们的值是确定的!所以如果 4+5的值超过了 byte的最大值的范围, 那就会编译出错!(也就是等式右边都是常量…
  //与运算 &  规则 :都为1时才为1        System.out.println( 7 & 9);        /*         *  7二进制 0111             *  9二进制 1001         * -----------          *        0001   ==1         * */                //或运算 | 规则:有一个为1,则为1        System.out.println(7 | 9);…
public class First { public static void main(String[] args) { boolean a = false; boolean b = true; boolean c = false; if (a || b && c){ System.out.println("ok"); } } } 上面什么也不输出,当把c改为true输出为ok 由此可见,是先运算 b&&c 再运算 a ||…