笔记 - Java 进制和位运算

简介: 二进制:只有0和1组成的一组数成为二进制数,计算机中的数据都是以二进制形式进行存储的。     通常一个二进制数最高位是1,那么对应的十进制数为负数,如果最高位是0,那么对应的数是正数      八进制:一个二进制数表示成八进制数,将该二进制数从右到左每三位一组,每一组算出对应的十进制数,     每组对应的十进制数连起来就是八进制表现形式。八进制表现形式最高是7      十
二进制:只有0和1组成的一组数成为二进制数,计算机中的数据都是以二进制形式进行存储的。
    通常一个二进制数最高位是1,那么对应的十进制数为负数,如果最高位是0,那么对应的数是正数
    
八进制:一个二进制数表示成八进制数,将该二进制数从右到左每三位一组,每一组算出对应的十进制数,
    每组对应的十进制数连起来就是八进制表现形式。八进制表现形式最高是7
    
十进制:常用的数都是十进制数。

十六进制:0-9,a-f或A-F的表现形式,a-f表示的是10-15
    一个数表现为十六进制,将该数的二进制表现形式从右到左每四位分一组,每一组计算出对应的十进制数,
    如果该组计算出的十进制数大于9,则要用对应的字母表示,然后将每组算出的结果连起来便是该数的十六进制表现形式。

十进制转换成二进制:将一个数连续除以2得到的余数连起来就是该十进制数的二进制表现形式。

二进制转换成十进制:从右到左每位数乘以2的n次幂,第一位乘以2的0次幂,第二位乘以2的1次幂,,,
    以此类推,最后将所有的结果相加得到的结果就是该二进制数对应的十进制数。


& :与运算、有假则假,可参与位运算
    true & true = true;
    true & false = false;
    false & true = false;
    false & false = false;
    
| :或运算、有真则真,可参与位运算
    true | true = true;
    true | false = true;
    false | true = true;
    false | false = false;

^ :异或运算、两边相同结果为假,两边不同结果为真,可参与位运算
    true ^ true = false;
    true ^ false = true;
    false ^ true = true;
    false ^ false = false;
    
&&:与、&&和&的区别:
    &&:两个表达式中,当左边的表达式结果为false时,右边的表达式不会执行
    & :两个表达式都会执行

||:或、|和||的区别
    ||:两个表达式中,当左边的表达式结果为true时,左边的表达式不会执行
    | :两个表达式都会执行

! :非、取反

~ :反码、将一个十进制数的二进制表现形式进行取反,1变0,0变1

位运算:
    位移运算是最快的运算方式,其运算方式是将该数的2进制表现形式进行位移。
    
    左移:<< 左移位数越大,结果越大,
        左移的运算:一个数左移多少位,就是该数乘以2的该位数次幂
    
    右移:>> 右移位数越大,结果越小
        右移的运算:一个数右移多少位就是该数除以2的该位数次幂
        
    无符号右移: >>>
        将一个2进制数右移后,其最高位缺失,需要补位,右移运算时缺失的位取决于原2进制数的最高位
        若原2进制数的最高位是0,则用0来补齐缺失的位,若原2进制数的最高位是1,则用1来进行补齐
        而无符号右移则无视原2进制数的最高位是0还是1,都用0来补齐
      

如何计算出一个负数的二进制表现的十进制值?
    将该负数的二进制减去一再取反得出一个正数的二进制表现形式,该正数的十进制相反数就是该负数的二进制表示的十进制值
    

目录
相关文章
|
12天前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
27 1
|
14天前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
26 2
|
3天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
3天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
3天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
|
12天前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
本系列教程详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。对于希望快速学习Kotlin的用户,推荐查看“简洁”系列教程。本文档重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android library开发建议以及在Kotlin和Java之间互相调用的方法。
13 1
|
12天前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。若需快速入门,建议查阅“简洁”系列教程。本文重点探讨Kotlin与Java共存的高级话题,包括属性访问、空安全、泛型处理、同步机制及SAM转换等,助你在项目中逐步引入Kotlin。
13 1
|
14天前
|
Java 编译器 Android开发
Kotlin语法笔记(28) -Kotlin 与 Java 混编
Kotlin语法笔记(28) -Kotlin 与 Java 混编
18 2
|
20天前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
|
14天前
|
安全 Java 编译器
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
Kotlin语法笔记(27) -Kotlin 与 Java 共存(二)
25 0