当前位置: 首页 > news >正文

算法学习笔记——二进制

二进制

负数的十进制转二进制数(-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)

相关文章:

算法学习笔记——二进制

二进制 负数的十进制转二进制数&#xff08;-2 -> 1110&#xff09;&#xff1a; 正数 - 1&#xff0c;再取反&#xff0c;得到负数的二进制。 例如&#xff1a;-2 &#xff1a;0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110 负数的二进制转十进制&#xff08;…...

计算机网络介绍

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

解锁数据宝藏:高效查找算法揭秘

代码下载链接&#xff1a;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视频智能监控技术,构建智慧化考场监管体系

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

深度解析:速卖通618风控下自养号测评的技术要点

速卖通每年的618大促活动平台的风控都会做升级&#xff0c;那相对的测评技术也需要进行相应的做升级&#xff0c;速卖通618风控升级后&#xff0c;自养号测评需要注意以下技术问题&#xff0c;以确保测评 的稳定性和安全性&#xff1a; 一、物理环境 1. 硬件参数伪装&#x…...

国产算力——沐曦GPU性能及应用

沐曦集成电路&#xff08;上海&#xff09;有限公司&#xff08;简称“沐曦”&#xff09;成立于2020年9月&#xff0c;专注于为异构计算提供全栈GPU芯片及解决方案&#xff0c;满足数据中心对“高性能”、“高能效”及“高通用性”的算力需求。 产品系列 沐曦构建了全栈高性…...

贪心算法拓展(反悔贪心)

相信大家对贪心算法已经见怪不怪了&#xff0c;但是一旦我们的决策条件会随着我们的步骤变化&#xff0c;我们该怎么办呢&#xff1f;有没有什么方法可以反悔呢&#xff1f; 今天就来讲可以后悔的贪心算法&#xff0c;反悔贪心。 https://www.luogu.com.cn/problem/CF865Dhttp…...

在spring框架的基础上自定义autowired注解

在Spring框架的基础上自定义Autowired注解是不可能的&#xff0c;因为注解本身是Java语言的一部分&#xff0c;并且Autowired是Spring框架提供的注解&#xff0c;用于实现自动装配。但是&#xff0c;你可以创建自己的注解&#xff0c;并结合Spring框架的扩展机制来实现类似的功…...

2005NOIP普及组真题 3. 采药

线上OJ&#xff1a; [05NOIP普及组] 采药 核心思想: 1、题与 2006 年普及组第2题《开心的金明》一样&#xff0c;考察的都是01背包。 2、直接套用01背包的一阶模板即可 a、限定时间看成背包总容量m b、每件物品的采药时间 v 看成占用背包的体积 c、每件物品的价格w作为该物品的…...

preventDefault()与stopPropagation()有什么区别?

1、event.preventDefault()方法 &#xff08;1&#xff09;可防止元素的默认行为 &#xff08;2&#xff09;如果在表单元素中使用&#xff0c;它将阻止其提交 &#xff08;3&#xff09;如果在锚元素中使用&#xff0c;它将阻止其导航 &#xff08;4&#xff09;如果在上下…...

AIGC 全面介绍

随着人工智能技术的不断进步&#xff0c;生成式人工智能&#xff08;AI Generated Content, AIGC&#xff09;成为了一个日益热门的话题。AIGC 指利用人工智能技术生成各类内容&#xff0c;包括文本、图像、音频、视频等。与传统的内容生成方法相比&#xff0c;AIGC 具有速度快…...

网站入门:Flask用法讲解

Flask是一个使用Python编写的轻量级Web服务框架&#xff0c;旨在帮助开发人员快速构建和部署Web应用程序。下面将对Flask进行更为详细的解释说明&#xff0c;并展示其使用示例与注意事项&#xff1a; 1.解释说明 定义及特点: Flask以其简洁和灵活著称&#xff0c;允许开发者以…...

头歌数据库备份与恢复

第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引入

一&#xff0c;创建小程序项目 AppID可先用测试号&#xff1b; 模板来源选择 ’全部来源‘ &#xff0c;’基础‘ 。模板一定JS开头的&#xff1b; vant-weapp 官网 vant-Weapp 二&#xff0c;下载vant-weapp 组件 1&#xff0c;在新项目中打开 ’调试器‘&#xff1b; 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 的文件&#xff0c;并编写以下代码&#xff1a; // advanced_calculator.cpp #include <iostream> #include <limits>int main() {char operatorChoice;bool keepRunning true;while (keepRunning) {int nu…...

Spring Boot 开发 -- swagger3.0 集成

前言 随着微服务架构的普及和API数量的增长&#xff0c;API文档的管理和维护变得尤为重要。Swagger作为一款强大的API文档生成工具&#xff0c;能够帮助我们自动生成API文档&#xff0c;并提供在线测试功能&#xff0c;极大地提高了开发效率。本文将介绍如何在Spring Boot项目…...

探索安全之道 | 企业漏洞管理:从理念到行动

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

【记录贴:分布式系列文章】

分布式系列文章目录 文章目录 分布式系列文章目录前言一、Redisq1.怎么判断是否命中缓存1. MySQL数据库如何检查询查缓存是否命中链接2.如何判断redis是否命中缓存链接 q2.Redis缓存穿透、雪崩、击穿以及分布式锁和本地锁 二、分布式q1.分布式订单号生成策略q2.接口幂等性,防止…...

初识SDN(二)

初识SDN&#xff08;二&#xff09; SDN部分实现 REST API 是什么&#xff1f; REST API&#xff08;Representational State Transfer Application Programming Interface&#xff0c;表述性状态传递应用程序接口&#xff09;是一种基于HTTP协议的接口&#xff0c;广泛用于…...

某红书旋转滑块验证码分析与协议算法实现(高通过率)

文章目录 1. 写在前面2. 接口分析3. 验证轨迹4. 算法还原 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致…...

Gin的快速入门和搭建

文章目录 Go的工程工程架构技术选型 Gin入门 Go的工程 基于Go生态&#xff0c;构建一个支持内容管理&#xff0c;内容加工、内容分发的内容库系统。 内容管理&#xff1a;增删改查内容加工&#xff1a;例如内容审核、推荐等内容分发&#xff1a;将内容可以推到不同的业务线 …...

react-native运行程序 出现 Application XXX is waiting for the debugger

1.重启adb: adb kill-server、 adb start-server. 2、确定USB调试模式是否开启&#xff0c;如果已经开启了&#xff0c;关闭了重新打开一下 3.选择调试模式并关闭等待调试程序...

什么文档加密软件好用?迅软DSE加密软件你不会还不知道吧?

一、什么文档加密软件好用&#xff1f; 其中有迅软DSE文档加密软件等。 迅软DSE加密软件&#xff1a;让企业的创意成果、招投标文件、生产工艺、流程配方、研发成果、公司计划、员工信息等核心数据更安全。 多方面加密模式&#xff0c;有效防止数据泄密 透明无感知加密&…...

【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路

目录 一、污点(Taint) 1.1污点介绍 1.2污点的组成格式 1.3当前 taint effect 支持如下三个选项&#xff1a; 1.4污点的增删改查 1.4.1验证污点的作用——NoExecute 1.4.2验证污点的作用——NoSchedule 1.4.3 验证污点的作用——PreferNoSchedule 1.5污点的配置与管理…...

linux进程加载和启动过程分析

我们的源代码通过预处理,编译,汇编,链接后形成可执行文件,那么当我们在终端敲下指令$ ./a.out argv1 argv2 后,操作系统是怎么将我们的可执行文件加载并运行的呢? 首先知道,计算机的操作系统的启动程序是写死在硬件上的,每次计算机上电时,都将自动加载启动程序,之后…...

WLAN组网模型探究

目录 一、WLAN基本概念二、WLAN组网方式三、WLAN转发模型 随着信息技术的飞速发展&#xff0c;无线局域网&#xff08;WLAN&#xff09;已逐渐成为企业网络架构中不可或缺的一部分。不同的企业组织因其业务特性、规模大小及安全需求的不同&#xff0c;对WLAN的要求也各有侧重。…...

操作系统基础知识

一. 进程 进程是正在运行中的程序&#xff0c;是动态的 进程是资源分配的最小单位 进程的基本特征&#xff1a;动态性&#xff0c;并发性&#xff0c;独立性&#xff0c;异步性 二. 线程 线程在执行过程中的每一个任务就是一个线程 进程是由一个或多个线程组成&#xff0…...

Kompas AI:智能生活的开启者

引言 在现代社会&#xff0c;**人工智能&#xff08;AI&#xff09;**已经深刻地影响了我们的生活和工作。无论是智能家居、自动驾驶&#xff0c;还是医疗诊断&#xff0c;AI的应用无处不在。而在众多AI平台中&#xff0c;Kompas AI 作为一个先进的对话式AI平台&#xff0c;通过…...

Java——二进制原码、反码和补码

一、简要介绍 原码、反码和补码只是三种二进制不同的表示形式&#xff0c;每个二进制数都有这三个形式。 1、原码 原码是将一个数的符号位和数值位分别表示的方法。 最高位为符号位&#xff0c;0表示正&#xff0c;1表示负&#xff0c;其余位表示数值的绝对值。 例如&…...