算法学习笔记——二进制
二进制
负数的十进制转二进制数(-2 -> 1110):
-
正数 - 1,再取反,得到负数的二进制。
-
例如:-2 :0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110
负数的二进制转十进制(1001 -> -7):
- 负数取反,再 + 1,得到正数x,则结果为 -x
- 例如:1001 -> 取反 -> 0110 -> 0110 + 1 -> 0111 ,则 - x = - 7
无符号范围:
0 --- 2^(n-1)
,n为符号位数
有符号范围:
- 正数范围:
0 --- 2^(n-1) - 1
,n为符号位数 - 负数范围:
-2^(n-1) --- -1
,n为符号位数
~
相反数:
- 原数取反之后再加1,就是它的相反数
- 负数的最小值不能转换出它的相反数,
因为转换后还是原来的值,正数范围没有对应的数
位运算:
|
:两个位都为0时,结果才为0,只要符号位有1就保留&
:两个位都为1时,结果才为1^
:两个位相同为0,相异为1穿透性
: 两个位都会执行,会一直穿透下去<< (左移)
:左移一位,整体状态向左移动一位,最低位(右边) 补一个0,左移多少位就补多少个0,非负数<< i
等同于乘以2的i次方,只有非负数符合这个特征,负数不要用
>> (右移)
:右移一位,整体状态向右移动一位,最高位(左边) 补一个1,右移多少位就补多少个1,非负数>> i
等同于除以2的i次方,只有非负数符合这个特征,负数不要用
>>> (右移)
:右移一位,整体状态向右移动一位,最高位(左边) 补一个0,右移多少位就补多少个0
逻辑运算:
||
:两个位都为false时,结果才为false,穿透性
:当有一个为true就停止穿透,后面的不会继续执行&&
:两个位都为true时,结果才为true,穿透性
:当有一个为false就停止穿透,后面的不会继续执行
为什么这么设计二进制:
- 为了加法的逻辑是一套逻辑,没有条件转移,提高运算速度
- 用位运算实现加减乘除,计算机中只有位运算逻辑单元,减乘除都是由加法高效地拼出来的
关于溢出:
- 自己确保自己的调用所得到的结果不会溢出,一定是自己确保的,计算机不会给你做检查
打印二进制:
-
System.out.print((num & (1 << i)) == 0 ? “0” : “1”);
-
状态与1位移多少位进行与运算,结果为0则该位状态为0,大于0则为1
-
long类型的数字num,有64位
num & (1 << 48),这种写法不对
因为1是一个int类型,只有32位,所以(1 << 48)早就溢出了,所以无意义
应该写出:num &(1L << 48)
相关文章:
算法学习笔记——二进制
二进制 负数的十进制转二进制数(-2 -> 1110): 正数 - 1,再取反,得到负数的二进制。 例如:-2 :0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110 负数的二进制转十进制(…...

计算机网络介绍
计算机网络介绍 概述网络概述相关硬件 链路层VLAN概念VLAN 特点VLAN 的划分帧格式端口类型原理 STP概念特点原理 Smart Link概念特点组网 网络层ARP概念原理 IP概念版本IP 地址 IPv4IP 地址数据报格式 IPv6特点IP 地址数据报格式 ICMP概念分类报文格式 VRRP概念原理报文格式 OS…...

解锁数据宝藏:高效查找算法揭秘
代码下载链接:https://gitee.com/flying-wolf-loves-learning/data-structure.git 目录 一、查找的原理 1.1 查找概念 1.2 查找方法 1.3平均查找长度 1.4顺序表的查找 1.5 顺序表的查找算法及分析 1.6 折半查找算法及分析 1.7 分块查找算法及分析 1.8 总结…...

利用EasyCVR视频智能监控技术,构建智慧化考场监管体系
随着科技的进步,视频监控在各个领域的应用越来越广泛,其中在考场中的应用尤为显著。视频监控不仅能够提高考场的监管水平,确保考试的公平、公正和公开,还能有效预防和打击作弊行为,为考生营造一个良好的考试环境。 传…...

深度解析:速卖通618风控下自养号测评的技术要点
速卖通每年的618大促活动平台的风控都会做升级,那相对的测评技术也需要进行相应的做升级,速卖通618风控升级后,自养号测评需要注意以下技术问题,以确保测评 的稳定性和安全性: 一、物理环境 1. 硬件参数伪装&#x…...
国产算力——沐曦GPU性能及应用
沐曦集成电路(上海)有限公司(简称“沐曦”)成立于2020年9月,专注于为异构计算提供全栈GPU芯片及解决方案,满足数据中心对“高性能”、“高能效”及“高通用性”的算力需求。 产品系列 沐曦构建了全栈高性…...

贪心算法拓展(反悔贪心)
相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢? 今天就来讲可以后悔的贪心算法,反悔贪心。 https://www.luogu.com.cn/problem/CF865Dhttp…...
在spring框架的基础上自定义autowired注解
在Spring框架的基础上自定义Autowired注解是不可能的,因为注解本身是Java语言的一部分,并且Autowired是Spring框架提供的注解,用于实现自动装配。但是,你可以创建自己的注解,并结合Spring框架的扩展机制来实现类似的功…...
2005NOIP普及组真题 3. 采药
线上OJ: [05NOIP普及组] 采药 核心思想: 1、题与 2006 年普及组第2题《开心的金明》一样,考察的都是01背包。 2、直接套用01背包的一阶模板即可 a、限定时间看成背包总容量m b、每件物品的采药时间 v 看成占用背包的体积 c、每件物品的价格w作为该物品的…...
preventDefault()与stopPropagation()有什么区别?
1、event.preventDefault()方法 (1)可防止元素的默认行为 (2)如果在表单元素中使用,它将阻止其提交 (3)如果在锚元素中使用,它将阻止其导航 (4)如果在上下…...
AIGC 全面介绍
随着人工智能技术的不断进步,生成式人工智能(AI Generated Content, AIGC)成为了一个日益热门的话题。AIGC 指利用人工智能技术生成各类内容,包括文本、图像、音频、视频等。与传统的内容生成方法相比,AIGC 具有速度快…...

网站入门:Flask用法讲解
Flask是一个使用Python编写的轻量级Web服务框架,旨在帮助开发人员快速构建和部署Web应用程序。下面将对Flask进行更为详细的解释说明,并展示其使用示例与注意事项: 1.解释说明 定义及特点: Flask以其简洁和灵活著称,允许开发者以…...
头歌数据库备份与恢复
第1关:数据库的备份和恢复 mysql -uroot -p123123 -h127.0.0.1 < /data/workspace/myshixun/src/data.sqlmysqldump -u root -p studb student> /student_bk.sqlmysql -uroot -p123123 -h127.0.0.1 -e "create database studb2;"mysql -u root -p123123 studb…...

小程序项目创建与Vant-UI引入
一,创建小程序项目 AppID可先用测试号; 模板来源选择 ’全部来源‘ ,’基础‘ 。模板一定JS开头的; vant-weapp 官网 vant-Weapp 二,下载vant-weapp 组件 1,在新项目中打开 ’调试器‘; 2…...
xtrabackup 使用
官网 Percona XtraBackup Use APT repositories - Percona XtraBackup 一 安装 下载 wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb wget https://repo.percona.com/apt/percona-release_latest.zesty_all.deb 可下载列表 Perc…...
C++写一个简单的计算器程序案例
1. 编写C源代码 创建一个名为 advanced_calculator.cpp 的文件,并编写以下代码: // advanced_calculator.cpp #include <iostream> #include <limits>int main() {char operatorChoice;bool keepRunning true;while (keepRunning) {int nu…...
Spring Boot 开发 -- swagger3.0 集成
前言 随着微服务架构的普及和API数量的增长,API文档的管理和维护变得尤为重要。Swagger作为一款强大的API文档生成工具,能够帮助我们自动生成API文档,并提供在线测试功能,极大地提高了开发效率。本文将介绍如何在Spring Boot项目…...

探索安全之道 | 企业漏洞管理:从理念到行动
如今,网络安全已经成为了企业管理中不可或缺的一部分,而漏洞管理则是网络安全的重中之重。那么企业应该如何做好漏洞管理呢?不妨从业界标准到企业实践来一探究竟!通过对业界标准的深入了解,企业可以建立起完善的漏洞管…...

【记录贴:分布式系列文章】
分布式系列文章目录 文章目录 分布式系列文章目录前言一、Redisq1.怎么判断是否命中缓存1. MySQL数据库如何检查询查缓存是否命中链接2.如何判断redis是否命中缓存链接 q2.Redis缓存穿透、雪崩、击穿以及分布式锁和本地锁 二、分布式q1.分布式订单号生成策略q2.接口幂等性,防止…...
初识SDN(二)
初识SDN(二) SDN部分实现 REST API 是什么? REST API(Representational State Transfer Application Programming Interface,表述性状态传递应用程序接口)是一种基于HTTP协议的接口,广泛用于…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...