java-求问按位&按位|按位^按位~的意义是什么

问题描述

求问按位&按位|按位^按位~的意义是什么
我知道按位操作的规则计算方式,就是不清楚位运算出来的值的作用意义,请大神告知

解决方案

比如说一个函数,需要一些参数,这些参数既可以定义为很多个bool变量,也可以使用一个整数,每个二进制位表示一个bool变量,后者更简单。

windows api中经常有这样的设计,比如不同的窗口风格。
那么这种一个整数表示的二进制变量,怎么取得和设置某一位呢?就要用到位运算。

再比如,一些加密算法,也需要用到位运算。

解决方案二:
最常用的是标致位,用来取/设置某个位标志。

解决方案三:
基本上取且,或,或者反转之类的操作会用

解决方案四:
有些算法和操作只需要一次操作一位或几位,比如把大写字母变小写字母只需要第5位置1,哈夫曼树要一位一位的找到树叶,有些函数的参数是第一位代表什么意思第二位代表什么意思等等。

解决方案五:
一个字节,8个二进制位,可以代表8种状态或状态值,按位计算。这样可以节约内存、简化代码设计。
如果不用这种方式,是否需要用数组什么的代替吧?

解决方案六:
举个例子说明吧,我用二进制演示给你看,1100&&0011 相对于1100&0011换算成十进制分别是12&&3和12&3,但是第一个是true第二个是false 因为**第一个整体的做‘与’运算**,而第二个是**每一'位都做与'运算**因此是结果完全不一样的,~和^也是同样的道理,一个是整体取反,另外一个是与某个特定的值(二进制)取异或//希望你能理解

解决方案七:
有时候能使二进制数据操作起来更方便。例如:因为所有二进制数据对1按位取&都等于它本身,对0按位取|也等于它本身。那么将ascii的A转化为a,因为A的ascii码二进制表示为0100 0001, a为0110 0001,那么我们可以将A对0010 0000按位取或,就能得到a了。同理在java处理bmp图像要获得rgb管道值也可以采用按位取与

解决方案八:
这的是实际中看情况而定,
比如用|运算可以进行两个数的交换位置
比如使用&可以用来统计一个整数二进制中1的个数
多总结就好了

时间: 2024-08-04 07:12:02

java-求问按位&按位|按位^按位~的意义是什么的相关文章

初学java求问一下

问题描述 是想把原来的字符串"Hello"的引用通过datachange()方法变成"Helloworld"可是我怎么也变不了,它还是"Hello"代码:publicclassTest2{privatestaticStringsb=null;publicstaticvoidmain(String[]args){sb="Hello";System.out.println("Beforechange,sb="+

java 新手求问cannot be resolved to a type 的解决方法

问题描述 java 新手求问cannot be resolved to a type 的解决方法 这是我自学的一个项目,以前没发现这样的问题,jdk8.65,eclipse是最新版,看了网上的同类问题好像是jar包导入的问题,但是不知道具体怎样解决,请路过的大神指点迷津,万分感谢 import java.awt.*; import java.awt.event.*; public class ChatClient extends Frame{ TextArea ta = new TextArea

java求哪位大神帮看看,分割可以,粘合不行!

问题描述 java求哪位大神帮看看,分割可以,粘合不行! import java.util.*;import java.io.*;class SplitDemo { public static void main(String[] args) throws IOException { //File file=new File(""D:我想念你.mp3""); File dir=new File(""D:splitfiles""

求问,一道关于tomcat,java 的问题,求解答

问题描述 求问,一道关于tomcat,java 的问题,求解答 java.net.BindException: Address already in use: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106) at java.net.Abstract

对话框-求问一条java.lang.NULLPointerExcption的问题

问题描述 求问一条java.lang.NULLPointerExcption的问题 import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View.*; import android.widget.*; import android.view.View; import android.app.AlertDialog; import android.a

java 7-画的图一直显示不到中间,求问关于JFrame中添加Graphics时该如何设置及相关内容

问题描述 画的图一直显示不到中间,求问关于JFrame中添加Graphics时该如何设置及相关内容 import java.awt.*; import javax.swing.*; public class Fractal extends JFrame{ private PaintTriangle paintTriangle = new PaintTriangle(); public Fractal(){ paintFractal(1); add(paintTriangle); } privat

java基础-求问关于java中异常处理的问题。。

问题描述 求问关于java中异常处理的问题.. 不是很理解java异常处理中的try catch语句块,比如说我的catch语句块中是一个System.out.println("caught IOEexception":e.getMessage()),那么这个catch语句起到的作用就是提示我一下哪个地方有异常吗?然后我再去它提示我发生异常的地方去修改我的程序? 那么如果我的catch语句里面什么都没写,只是一个catch{}:由于写了try catch语句块编译一定会通过,那岂不是说

求问java 异步编程实现的原理是什么?我一直不明白它与回调的区别,求解,谢谢

问题描述 求问java 异步编程实现的原理是什么?我一直不明白它与回调的区别.假如我在执行某个任务的时候我再开启另外一个线程进行监听,这个与异步的实现有什么区别? 解决方案 应该这样理解同步是和异步进行比较的回调只是一种编程方法,让代码更加的优雅,回调是函数式编程的一种说法,相对于面向对像编程时,"回调"就变成"事件监听"这种说法了我们常说的同步回调,指的就是一个代码执行过程中,需要等到回调函数完全执行完后,才能往 下走.异步回调指的是一个代码执行到回调函数时,他可

求问 java为什么空指针异常

问题描述 求问 java为什么空指针异常 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Exception in JSP: /select.jsp:36 33: 鐢佃瘽 34: 35: <

新手求问,关于JAVA的 String方法

问题描述 新手求问,关于JAVA的 String方法 这样子是输出还是 abcd没有用到转换大写的方法String s=""abcd"";s.toUpper();System.out.println(s); 这样子输出ABCD,用到了大写的方法String s=""abcd"";System.out.println(s.toUpper()); 为什么会这样呢 解决方案 新手求解求解求解求解求解求解 解决方案二: 建议从浅复制和