首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    编程之美2: 二进制重建

    称号: 在队列中,队列给定二进制序列前导,这种二元结构。 NULL; pNode->value = chroot; *root = pNode; if(len == 1) return; //2: right); cout << root->value << ","; } int main() { char p1[7] = "abdcef"; char p2[ 7] = "dbaecf"; Node* root = NULL; rebuildtree(p1, p2, 6, &root); //end print

    33610编辑于 2022-07-06
  • 来自专栏大大刺猬

    binlog2sql 打包为二进制

    '.format(binlog_event.schema) sql += '{0};'.format(fix_object(binlog_event.query))图片再试一下图片打包为二进制为啥要打包为二进制呢 打包好的二进制文件在 dist目录下面使用打包好的二进制文件测试下报错了,在第9行.... No module named 'binlog2sql_util'图片说没得binlog2sql_util模块, 我们修改下binlog2sql.py文件的第9行如下from binlog2sql.binlog2sql_util 以后就可以使用二进制的了.图片pymysql 1.0 环境如果你不是安装的指定的依赖. 比如你的环境是mysql-replication:0.31, pymysql1.0.2. 如下内容(47行处)图片修改binlog2sql.py如下内容(73行处)图片然后再次使用就正常了(打包方法同上)图片总结binlog2sql已经很多年没有更新了, github上也没得二进制包...

    83211编辑于 2023-03-15
  • 来自专栏Michael阿明学习之路

    重构 2二进制矩阵(贪心)

    题目 给你一个 2 行 n 列的二进制数组: 矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。 第 0 行的元素之和为 upper。 第 1 行的元素之和为 lower。 示例 1: 输入:upper = 2, lower = 1, colsum = [1,1,1] 输出:[[1,1,0],[0,0,1]] 解释:[[1,0,1],[0,1,0]] 和 [[0,1,1], 示例 2: 输入:upper = 2, lower = 3, colsum = [2,2,1,1] 输出:[] 示例 3: 输入:upper = 5, lower = 5, colsum = [2,1,2,0,1,0,1,2,0,1 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reconstruct-a-2-row-binary-matrix 著作权归领扣网络所有。 2.

    39810发布于 2020-07-13
  • 来自专栏瓜农老梁

    HTTP2协议之二进制桢【原理笔记】

    HTTP/2的报文是以二进制桢发送的。那桢格式、桢大小、桢类型是怎么样的?本文会整理桢的格式以及十种桢类型。 取值在2^14(16,384)与2^24-1(16,777,215)之间;可在接收方SETTINGS_MAX_FRAME_SIZE设置。 桢类型 桢类型用8位1个字节表示,说明桢的格式和语义。 流标识符 流标识符用31位表示,上限为2^31。接收方可以根据流标识ID进行组装,同一个Stream中内Frame必须是有序的,所以接受方根据流ID可以拼接成有序的流。 2.Wireshark抓包截图 [91a8jz0xkf.jpeg] 二、桢类型 1.DATA桢 数据桢主要存储HTTP/2数据报文,具体格式如下图: [oj50lqpgve.png] 字段含义 Padding [ib9xudx0l2.png] 三、小结 通过对二进制桢内容的整理和走查,对HTTP/2通信的各种桢不再陌生,根据桢的类型可以知道通信双方在做什么操作。欢迎跟作者互动、共同探讨。

    1.3K30发布于 2020-05-18
  • 来自专栏TA码字

    二进制安装k8s集群(2)-制作ssl证书

    keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = *.rodney.com IP.1 = 172.20.11.41 IP.2 server端的证书,生成docker client key, client csr, client crt文件 1. openssl genrsa -out docker-client.key 2048 2.

    1.1K50发布于 2020-04-01
  • 来自专栏运维监控日志分析

    麒麟系统V10 SP2 二进制部署Docker

    Docker 二进制包官方下载 x86 架构 https://download.docker.com/linux/static/stable/x86_64/ aarch 架构 https://download.docker.com /linux/static/stable/aarch64/ 下载安装Docker 1、下载 docker二进制包文件 wget https://download.docker.com/linux/static /stable/x86_64/docker-20.10.7.tgz 2、解压docker压缩包 tar -zxvf docker-20.10.7.tgz 3、移动二进制文件到 /usr/bin 目录 mv /dockerd 添加 systemd 1、编辑docker的系统服务文件 vi /usr/lib/systemd/system/docker.service 2、添加服务启动配置 [Unit] Description

    2.3K20编辑于 2022-11-19
  • 来自专栏glm的全栈学习之路

    Codeforces Round #633 (Div. 2)C Powered Addition (贪心,二进制)

    …,iki1,i2,…,ik which are between 11 and nn inclusive, and add 2x−12x−1 to each corresponding position Formally, aij:=aij+2x−1aij:=aij+2x−1 for j=1,2,…,kj=1,2,…,k. Array aa is nondecreasing if and only if a1≤a2≤…≤ana1≤a2≤…≤an. The second line of each test case contains nn integers a1,a2,…,ana1,a2,…,an (−109≤ai≤109−109≤ai≤109). Example input 3 4 1 7 6 5 5 1 2 3 4 5 2 0 -4 output 2 0 3 Note In the first test case, if you select

    44930发布于 2020-09-28
  • 来自专栏在码圈

    二进制

    2次幂+0*2的3次幂+1*2的4次幂+0*2的5次幂+1*2的6次幂 0+2+4+0+16+0+64 = 86 10进制转2进制 公式 1.除2求余数法 2.一般简单的2的10次幂数 ---- 1 64 + 16 + 4 + 2 如果 有1 则第一位就是1 如果没有1 则第一位是0 01010110 二进制0与二进制负数 最高位变成符号位 原码、反码、补码 1). 其他位存放该数的二进制的绝对值。 2). 反码:正数的反码还是等于原码。负数的反码就是他的原码除符号位外,按位取反。 负数用补码表示,10进制 负数转二进制,先求解对应正数,然后符号位定为1,其余位取反+1 -17转-进制= 二进制负数转十进制,符号位不变,其余位取反+1,得到原码 11000100转十进制- 为什么负数用补码表示 减法可以当做加法来运算 0的表述实现统一 二进制逻辑运算 与运算 & 遇o则0 或运算 | 遇1则1 1-0 0-1 异或运算 ^ 不进位加(相同为0,相异为1 ) 右移 >> 补符号位 正整数右移一位

    72410发布于 2020-07-21
  • 来自专栏Java

    试题 算法训练 6-2递归求二进制表示位数

    试题 算法训练 6-2递归求二进制表示位数 资源限制 内存限制:256.0MB C/C++时间限制:10.0s Java时间限制:30.0s Python时间限制:50.0s 问题描述   给定一个十进制整数 ,返回其对应的二进制数的位数。 例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。 样例输入 一个满足题目要求的输入范例。 9 样例输出 与上面的样例输入对应的输出。 #include<stdio.h> int main(){ int n,i=0; scanf("%d",&n); while(n>0){ n/=2; i++; } printf("%d

    14200编辑于 2025-01-21
  • 来自专栏网络安全技术点滴分享

    Viper2二进制文件(病毒)分析与管理的框架分析

    系统概述 Viper2 是一个用于二进制文件(病毒)分析与管理的框架,提供了文件存储、会话管理、项目管理、模块加载、文件标签、文件搜索等功能。 该系统通过命令行交互的方式,允许用户对二进制文件进行深入分析,并支持通过插件模块扩展功能。 __modules: dict = {} 应用场景 Viper2 适用于以下场景: 恶意软件分析:通过存储和分析二进制文件(病毒),安全研究人员可以快速识别恶意软件的特征和行为。 系统总结 Viper2 是一个功能强大的二进制文件(病毒)分析与管理框架,具有灵活的模块化设计和丰富的命令行交互功能。通过数据库和文件存储的结合,系统能够高效地管理大量文件,并支持复杂的文件关系管理。 其动态模块加载机制使得系统具有高度的可扩展性,适用于多种二进制文件(病毒)分析场景。 github链接地址:https://github.com/viper-framework/viper2.git

    26510编辑于 2025-06-16
  • 来自专栏全栈程序员必看

    二进制除法_111011001÷1011二进制除法

    题目描述: 二进制数n mod m的结果是多少? 对于二进制数的取模运算,我们的第一反应一定是模拟其减法运算,然后逐位相减。 但是这道题的数据达到了2e5,鉴于减法模拟的巨大常数,一定是会T的.所以说我们换一个角度考虑这个问题——数论。 lenb = strlen(b); x = 1; for (int i = lenb - 1; i >= 0; i --){ if (b[i] == '1') sumb += x; x = x * 2; 1; for (int i = lena - 1; i >= 0; i --){ if (a[i] == '1') suma = (suma + y); suma %= sumb; y = (y * 2) ; y %= sumb; } while (true){ f[0] ++; f[f[0]] = suma % 2; suma /= 2; if (suma == 0) break; } if (!

    1K30编辑于 2022-09-20
  • 来自专栏酷酷的哀殿

    lldb 入坑指北(2) -​ 15行代码搞定二进制与源码映射

    前言 随着项目的扩大,为了提高开发效率、编译速度,组件化(二进制化)是一种不可避免的趋势。大部分的公司都分享过相关文章,本文不再赘述。下面集中在二进制化带来的问题,以及相应的解决方案。 ,本文通过 lldb 提供的源码映射能力,实现了将任意的二进制文件映射到源码文件的通用方案。 output = returnObject.GetOutput(); # 下面的代码设计思想是: # 1、根据{地址}查找该地址所属的{源码编译路径}+{编译文件名} # 2、 比如,SDWebImage # 2、通过脚本动态下载{编译模块}的{源码仓库} # 3、将{编译模块}与{源码仓库}映射 # 通过正则获取二进制编译时,源码的真正路径 *', output,re.M).group(2) # 通过真正路径获取编译源文件的文件名 fileName = re.match(r'/.*/(.*)', filePath).group

    1.6K10发布于 2021-03-18
  • 来自专栏Helloted

    二进制重排

    2二进制重排启动优化的原理 App 在启动时,需要执行各种函数,我们需要读取 _TEXT 段代码到物理内存中,这个过程会发生Page Fault缺⻚中断,由于启动时所需要执行的代码分布在 _TEXT 经过Layout后的二进制,其高频或关键代码排列会更紧凑,更利于优化startup启动阶段,以及mmap out/in(前后台切换或函数调用)阶段的速度和内存占用。 一个well-layout的二进制,如果使得所有启动阶段顺序执行的代码按照执行顺序排列在一起,那么整体page faults频率和次数会减少不少。 well-layout:则可能只占用了1到2页物理内存,只触发了2次page faults,且是相邻页的page faults; 3、重排方案 对于lldb而言,可采取的方案是基于linker提供的- OTHER_SWIFT_FLAGS'] = '-sanitize-coverage=func -sanitize=undefined' 真机在Window→Devices And Simulators(快捷键⇧+⌘+2)

    1.1K20编辑于 2022-06-08
  • 来自专栏wywwzjj 的技术博客

    二进制学习

    ; 2 字节 var dd 40 ; 4 字节 arr dd 1, 2, 3 ; 数组,初始值为 1, 2, 3 arr db 10 dup(?) 2,增强的 ASLR,在 1 的基础上,增加了堆基地址随机化。 所以如果要使用%7$x,你必须同时使用1,2,3,4,5和6。 关于 Link eDitor 的命名,https://en.wikipedia.org/wiki/GNU_linker 目标文件由汇编器和链接器创建,是文本程序的二进制形式,可以直接在处理器上运行。 uFAFF, uFE30..uFE4F, u20000..u2A6DF, u2A700..u2BA7F, u2B740..u2B81F, u2F800..u2FA1F; 导航条 蓝色:.text section

    1.4K20编辑于 2023-05-09
  • 来自专栏酷酷的哀殿

    lldb 入坑指北(2)-​ 15行代码搞定二进制与源码映射

    http://mpvideo.qpic.cn/tjg_3013949891_50000_5817e3ee3a3244308677fd52dcfc2a8f.f10002.mp4? 下面集中在二进制化带来的问题,以及相应的解决方案。 02 — 二进制在带来便利的同时,也带来一些新问题: 1、局部变量信息缺失 2、断点调试成本增加 3、汇编代码晦涩难懂 很多大厂都对此进行了研究,美团技术最近也做过一篇分享: 美团 iOS 工程 zsource — 为了解决以上问题,本文通过 lldb 提供的源码映射能力,实现了将任意的二进制文件映射到源码文件的通用方案。 比如,SDWebImage # 2、通过脚本动态下载{编译模块}的{源码仓库} # 3、将{编译模块}与{源码仓库}映射 # 通过正则获取二进制编译时,源码的真正路径

    2.2K21发布于 2020-10-26
  • 来自专栏运维监控日志分析

    麒麟 V10 SP2 系统 二进制包安装MySQL 8.0.30

    1,查看系统版本 cat /etc/kylin-release nkvers 2,检查系统是否存在MySQL或MariaDB,如果存在需要先卸载  rpm -qa | grep mariadb   bzip2-devel yum install -y libtirpc libtirpc-devel yum install -y readline readline-devel 4,MySQL8.0.30 部署 4.1,MySQL官网下载二进制安装包 https://dev.mysql.com/downloads/mysql/ Select Operating System 选择Linux-Generic OS Version 中有两选择,第一个是选择glibc2.12(X86_64),第二个是选择glibc2.17(X86_64) 选择glibc_2.17(X86_64)版本 4.2,上传MySQL二进制包 将MySQL 8.0.30的二进制包上传到/opt目录并解压到/usr/local目录 cd /opt tar xvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz

    3.7K40编辑于 2022-11-19
  • 来自专栏若尘的技术专栏

    二进制重排

    虚拟内存工作原理 2. 虚拟内存分页 刚刚提到虚拟内存和物理内存通过映射表进行映射,但是这个映射并不可能是一一对应的,那样就太过浪费内存了。为了解决效率问题,实际上真实物理内存是分页的。 2. Page Fault影响 内存分页触发中断异常 Page Fault 后,会阻塞进程,这是会对性能产生影响的。 undefined 二进制重排这个方案最早也是 抖音团队 分享的。 三、二进制重排 1. 如上图 ,编译顺序是method1、method2... 。启动时 page1 与 page2 都需要从无到有加载到物理内存中,所以会触发两次Page Fault。 2. 二进制重排操作 苹果已经给我们提供了这个机制,实际上 二进制重排就是对即将生成的可执行文件重新排列,这个操作发生在链接阶段。

    1.9K45编辑于 2021-12-07
  • 来自专栏yiyun 的专栏

    二进制运算

    在算法题中,常常需要用到二进制运算,这里做个总结 移位运算 << 左移操作符 将左操作数 向左移动 右操作数 指定的位数,空出的位置补0 左移相当于乘 左移 1 位 相当于 乘 2 左移 n 位,相当于 乘 2^n C x << 1 等价于下面 x * 2 >> 右移操作符 将左操作数 向右移动 右操作数 指定的位数 右移相当于除 右移 1 位 相当于 除以 2 右移 n 位,相当于 除以 2^n, 记得要取整 C x >> 1 等价于下面 x / 2 取整 与运算 与运算 判奇偶 二进制 判断 奇偶性,只需判断最后一位 是 0(偶数) 或 1(奇数) C if ((number & 1) == 1 ) { // 奇数 } else { // 偶数 } C if (number & 1) { // 奇数 } else { // 偶数 } 与运算 -1 C num & -2 等价于下面 C# 操作符 << 与 >> 用二进制位运算 来判断一个数是奇数还是偶数 本文作者: yiyun 本文链接: https://moeci.com/posts/binary-operation/ 版权声明

    50410编辑于 2022-04-01
  • 来自专栏Czy‘s Blog

    二进制求和

    二进制求和 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字1和0。 let unitNum = ~~(longer[i]) + ~~(shorter[i]) + addition; addition = 0; if(unitNum >= 2) { addition = 1; target = `${unitNum-2}${target}`; }else{ 然后定义目标字符串以及进位标记变量,然后从后开始往前遍历字符串,将字符串中的字符转换成数字类型然后相加并与进位变量相加,其中~~就是利用位运算将字符转换成数字,相加完成后将进位标志置为0,然后判断字符是否大于2, 如果大于等于2则将相加的字符减掉2并将进位标记记为1,若小于2则直接拼接字符串,然后不断循环完成目标字符的拼接,若最后依然有进位标志,则直接拼接1到目标字符串前,然后返回目标字符串即可。

    77120发布于 2020-08-27
  • 来自专栏叹世界

    二进制基础

    Windows 下的可执行文件格式 PE 可执行文件:.exe 动态链接库:.dll 静态链接库:.lib ELF 文件结构 节视图 (磁盘中划分程序)、段视图 (内存中) 32 位系统虚拟内存大小为 4GB (2 2. 软件是由 GUN 开发的 (ls, cd 等) 3. arch 提供软件源 4. glb; char* str = "Hello world"; int sum(int x, int y) { int t = x + y; } int main { sum(1, 2) | 4 | | 偏移地址: 0+2*4 = 8 | | | 假设位移为: 0x10 则地址为: 0+2*4+0x10 = 24 ·MOV: MOV DEST SRC 把源操作数传给目标(源操作数和被操作数不能同时是内存 分解为: sub 长度 %rsp mov $2 (%rsp) ·POP: 出栈用一个寄存器接受数据, 然后RSP减一个字节 例如:

    61340编辑于 2022-01-12
领券