重学Java 4 进制转换和位运算

天赋不好好使用的话,可是会被收回的哦

                                             ——24.1.13

一、进制转换

1.常用的进制

2.十进制和二进制之间的转换

1.十进制转二进制

辗转相除法——循环除以2,取余数,除到商为0为止,除完后,由下往上,得出换算后的数字

2.二进制转十进制

8 4 2 1规则

1 1 0 0

上下相乘再相加

3.二进制转化为八进制

三个为一组

110011 -> 二进制转为八进制,三位一组,不够三位,前面补0

110  011

1*2^2+1*2^1+0*2^0 = 6

0*2^2+1*2^1+1*2^0 = 3

将最终的6和3拼接在一起,成为63

4.二进制转化为十六进制

将二进制数四位为一组进行分组

10011011 -> 二进制转为十六进制,四位为一组,不够四位前面补0

1001 1011

1*2^3+0*2^2+0*2^1+1*2^0 = 9

1*2^3+0*2^2+1*2^1+1*2^0 = 11 = b

将最终的9和b拼接在一起,得到9b

二、位运算符

1.符号的介绍:

① &(与)-> 有假则假

② | (或) -> 有真则真

③ ~(非)-> 取反

④ ^(异或) -> 符号前后结果一样为false,不一样为true

        true ^ false = true

        false ^ true = true

        true ^ true = false

        false ^ false = false

2.  1代表true,0代表false

3. 我们要知道计算机在存储数据的时候都是存储数据的补码,计算也是用的数据的补码

但是我们最终看到的结果是原码换算得来

原码        补码        反码

4.正数的二进制最高位为0,负数的二进制最高位为1

5.如果是正数,正码、反码、补码都一致

        eg、5的原码        补码        反码都一致

                0000 0000 0000 0000 0000 0000 0000 0101        因为是正数,二进制最高位为0

        如果是负数,原码,反码,补码不一样

                反码是原码最高位不变,剩下的0和1互换

                补码是在反码的基础上+1

                根据补码算反码是在补码的基础上-1

        eg、-9

                原码:1000 0000 0000 0000 0000 0000 0000 1001

                反码:1111 1111  1111  1111  1111  1111  1111  0110

                补码:1111 1111  1111  1111  1111  1111  1111  0111

1.左移:<<

运算规则:左移几位就相当于乘以2的几次方

注意:当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数)位

例如:

2<<2        结果等于8        -2<<2        结果等于-8

快速算法:2*2^2                        -2*2^2

二进制算法

 

2.右移: >> 

运算规则:类似于除以2的n次,如果不能整除,则向下取整

9>>2        结果等于2(9除以2的2次方)

快速算法:9/2^2向下取整

例如:

9>>2        结果等于2          -9>>2        结果等于-3

9/2^2 = 2     向下取整        -9/2^2=-3     向下取整 

 3.无符号右移: >>>

运算规则:往右移动后,左边空出来的位置直接补0,不管最高位是0还是1,空出来的都拿0补

正数:和右移一样

9 >>> 2        结果等于2

负数:右边移出去几位,左边补几个0,结果变为正数

-9 >>> 2        结果为1073741821

笔试题:

8 >>> 32位 -> 相当于没有移动还是8

8 >>> 34位 -> 相当于向右移动两位

4.按位与:&

小技巧:将0看为false,将1看为true

运算规则:对应位都是1才为1,相当于符号左右两边都为true,结果才为true

1 & 1        结果为1

1 & 0        结果为0

0 & 1        结果为0

0 & 0        结果为0

eg、

        5 & 3 -> 1

5.按位或: |

运算规则:对应位只要有1即为1,相当于符号前后只要有一个为true,结果就是true

1 | 1        结果1

1 | 0        结果1

0 | 1        结果1

0 | 0        结果0

eg、

        5 | 3        结果为7

6.按位异或:^

运算规则:对应位一样的为0,不一样的为1

1 ^ 1        结果为0,false

1 ^ 0        结果为1,true

0 ^ 1        结果为1,true

0 ^ 0        结果为0,false

eg、

        5 ^ 3        结果为6

7.按位取反: ~

运算规则:~0就是1  ~1就是0

eg、

        ~10        结果为-11

三、运算符的优先级

1.表达式不要太复杂

2.先算的使用(),记住,如果想让哪个表达式先运行,就加入小括号就可以了

3.运算符优先级如下图,优先级从低到高排列

四、总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟主机 如何上传大于100M的文件 php网站程序

问题 虚拟主机上传文件大小限制100m&#xff0c; 有时会遇到非常大的文件上传&#xff0c;上传过程中耗时非常久&#xff0c; 可能服务器的限制设置了上传文件尺寸&#xff0c;返回“413 request entity too large” 整体逻辑 前端&#xff1a;上传文件时&#xff0c;进行文…

C语言——内存函数【memcpy,memmove,memset,memcmp】

&#x1f4dd;前言&#xff1a; 在之前的文章C语言——字符函数和字符串函数&#xff08;一&#xff09;中我们学习过strcpy和strcat等用来实现字符串赋值和追加的函数&#xff0c;那么除了字符内容&#xff0c;其他的数据&#xff08;例如整型&#xff09;能否被复制或者移动呢…

Docker 镜像

1、联合文件系统 UnionFS&#xff08;联合文件系统)&#xff1a;Union文件系统〈UnionFS)是一种分层、轻量级并且高性能的文件系统&#xff0c;它支持对文件系统的修改作为一次提交来一层层的叠加&#xff0c;同时可以将不同目录挂载到同一个虚拟文件系统下(unite several dir…

CCF认证+蓝桥杯习题训练

贪心 *上取整公式* *代码展示* #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 1e5 10;typedef long long LL;int v[N] , a[N];int main() {int n , d;cin >> n >> d;for(int i 1 ; i < n…

函数式编程 - 组合compose的使用方法

函数式编程中有一个比较重要的概念就是函数组合&#xff08;compose&#xff09;,组合多个函数&#xff0c;同时返回一个新的函数。调用时&#xff0c;组合函数按顺序从右向左执行。右边函数调用后&#xff0c;返回的结果&#xff0c;作为左边函数的参数传入&#xff0c;严格保…

工业级安卓PDA超高频读写器手持掌上电脑,RFID电子标签读写器

掌上电脑&#xff0c;又称为PDA。工业级PDA的特点就是坚固&#xff0c;耐用&#xff0c;可以用在很多环境比较恶劣的地方。 随着技术的不断发展&#xff0c;加快了数字化发展趋势&#xff0c;RFID技术就是RFID射频识别及技术&#xff0c;作为一种新兴的非接触式的自动识别技术&…

python处理目录下文本文件去除空格和空行

一&#xff1a;实现思路&#xff1a; 要想实现去除某个目录下所有txt文件的空格&#xff0c;需要循环遍历一个目录下的所有文件&#xff0c; 获取文件的每行数据去除空格以后&#xff0c;重新保存数据到当前当前文件中。 处理空格,我们使用正则&#xff0c;这样可以去除字符串…

Java并查集设计以及路径压缩实现

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 并查集是一种树型的数据结构 &#xff0c;并查集可以高效地进行如下操作&#xff1a; 查询元素p和元素q是否属于同一组合并元素p和元素q所在的组 1、并查集的结构 并查集也是一种树型结构&#xff0c;但这棵树跟我们之…

uniapp 如何使用echarts 以及解决tooltip自定义不生效问题

使用的是echarts-for-wx插件&#xff1b; 正常写法案例&#xff1a;给tooltip数值加个% <template><view><uni-ec-canvas class"uni-ec-canvas"id"uni-ec-canvas"ref"canvas"canvas-id"uni-ec-canvas":ec"ec&quo…

【数据库】sql优化有哪些?从query层面和数据库层面分析

目录 归纳sql本身的优化数据库层面的优化 归纳 这类型问题可以称为&#xff1a;Query Optimization&#xff0c;从清华AI4DB的paper list中&#xff0c;该类问题大致可以分为&#xff1a; Query RewriterCardinality EstimationCost EstimationPlan Optimization 从中文的角…

SkipList 的索引过程,能否越两级搜索

“SkipList 的索引过程&#xff0c;能否越两级搜索&#xff1f;” 昨天&#xff0c;一个工作 7 年的粉丝&#xff0c;去某外包公司面试&#xff0c;被问到这个问题不知道该怎么回答。 今天正好有空&#xff0c;给大家分享一下这个问题的回答思路。 对了&#xff0c;这个问题…

ZooKeeper 实战(四) Curator Watch事件监听

文章目录 ZooKeeper 实战(四) Curator Watch事件监听0.前言1.Watch 事件监听概念2.NodeCache2.1.全参构造器参数2.2.代码DEMO2.3.日志输出 3.PathChildrenCache3.1.全参构造器参数3.2.子节点监听时间类型3.2.代码DEMO 4.TreeCache4.1.构造器参数4.2.代码DEMO4.3.日志输出 ZooKe…

Flink(十二)【容错机制】

前言 最近已经放假了&#xff0c;但是一直在忙一个很重要的自己的一个项目&#xff0c;用 JavaFX 和一个大数据组件联合开发一个功能&#xff0c;也算不枉我学了一次 JavaFX&#xff0c;收获很大&#xff0c;JavaFX 它作为一个 GUI 开发语言&#xff0c;本质还是 Java&#xff…

MSF流量加密

1、背景介绍 在MSF中生成shell&#xff0c;并上线运行时。都是通过http https tcp等协议传输。虽然MSF本身会对流量进行加密&#xff0c;但MSF太出名以致于其加密特征容易被IPS&#xff0c;WAF等可以检测带有攻击的特征的设备拦截或记录。 2、生成 SSL 证书 openssl req -x50…

关于运维·关于数据库面试题

目录 一、数据库类型 二、数据库引擎 三、mysql数据库类型 四、mysql的约束添加 五、主从复制原理 六、主从方式有几种 七、mysql主从数据不一致的原因 八、mysql的优化 九、什么是事务的特征 十、数据库读写分离的好处 十一、怎样优化sql语句 十二、mysql的同步方…

谷粒商城-商品服务-品牌管理-阿里云云存储+JSR303数字校验+统一异常处理

阿里云云存储OSS 分布式系统上传文件 分布式系统上传文件 单体应用上传&#xff1a;上传文件到服务器&#xff0c;想获取文件时再向服务器发请求获取文件。 分布式系统上传&#xff1a; 因为有多台服务器&#xff0c;为防止负载均衡导致获取文件时没找到对应的服务器&#xf…

实用编程调试技巧

目录 一、调试的基本步骤 二、Debug和Release的介绍 三、Windows环境调试介绍 1.调试环境的准备 2.学会快捷键 最常用的几个快捷键&#xff1a; 断点应用举例&#xff1a; 3.调试的时候查看程序当前信息 &#xff08;1&#xff09…

GitHub注册新账号的操作流程(详细)

目录 第一步 进入官网&#xff0c;点击右上角的"Sign up" 第二步 输入email地址 第三步 设置密码 第四步 输入昵称 第五步 根据个人喜好决定要不要接收GitHub的邮件推送。然后回答他们的验证问题 第六步 输入验证码 我在注册github账号时遇到过一些阻碍&#x…

软件测试|教你使用Python绘制正多边形

简介 绘制正多边形是Python图形编程的基本任务之一。在本文中&#xff0c;我将为你提供一个使用Python绘制正多边形的详细教程&#xff0c;并提供一个示例代码。我们将使用Python的Turtle库来进行绘制。 步骤1&#xff1a;导入Turtle库 我们需要先安装好Python环境&#xff…

Shiro框架:Shiro内置过滤器源码解析

目录 1. 常见项目中过滤器配置 2.Url访问控制配置解析为内置过滤器 2.1 DefaultFilterChainManager构造并注册内置过滤器 2.2 构造过滤器链 3. Shiro内置过滤器解析 3.1 内置过滤器概览 3.2 公共继承类解析 3.2.1 顶层Filter接口 3.2.2 AbstractFilter 3.2.3 Nameab…