最近在用Python做数据包解析,遇到一些要按位处理二进制数据的问题。折腾了一个早上,大概有一点思路,记下来备忘吧。我要解决的问题是判断一个字节的某几位是否为特定的值,比如判断一个字节的前四位是不是0110。首先,创建一个文档,里面随便写点东西,保存之后用可以查看二进制数据的软件打开,我用的是notepad++里的HEX-Editor插件。可以看到字符‘a’对应的二进制数据是61(01100001
转载
2023-05-26 10:04:41
123阅读
很多时候,都需要用到二进制读取文件。毕竟很多信息不是以文本的形式存储。例如:图片,音乐等等。这些东西都是有规则的二进制文件。
转载
2023-05-26 22:18:13
231阅读
二进制十进制八进制十六进制相互转换:不同进制之间的转换是计算机学科同学必学的,网上有很多这方面的知识,今天搬运过来整理一下,与大家分享,希望与大家一起进步。二进制转换:1、十进制到二进制: 除2取余数 最后把余数倒过来 100101 比如:十进制数37 所以转换成的二进制数字为:100101 **2、八进制到二进制:**一个八进制的位拆分成一个三位的二进制数 比如:[八进制]616 6拆分成 11
转载
2024-08-12 10:50:00
156阅读
文件操作②二进制文件open()方法里的mode参数:t 读取文本文件(默认值)b 读取二进制文件通过改变mode参数对二进制文件进行操作file_name = 'DD.jpg'
# 读取模式
# t 读取文本文件(默认值)
# b 读取二进制文件
# t b是和r w a 加在一起的,它们都是mode的参数
with open(file_name,'rb') as file_obj :
转载
2023-07-13 15:22:28
262阅读
一、二进制运算二进制使用 0和 1来表示的数,二进制的基数为 2。二进制数据也采用位置计数法,权位是以 2为底的幂。用 B表示二进制进位规则:逢一进二;借位规则:借一当二(一)二进制减法例如计算 1001001 - 0101101=11100(73 - 45=28)运算过程,从右向左逐位运算:1-1 = 0;0-0 = 0;0-1,0不够减 1,向前借一位后 +2 变成 2,得到 2-1 = 1;
转载
2023-12-14 22:07:39
245阅读
1. 二进制与十进制之间的转换1)十进制转二进制 十进制数除2取余法,即十进制数除2,余数记下来,然后得到的商值继续除2,余数继续记下来,商值再继续除2,依此步骤继续向下运算直到商为0。那么把记下来的余数从最后一个往前排,一直排到第一个记下来的余数,组成的一组由1和0组成的数就是这个十进制的二进制数 2)二进制转十进制 把二进制按权展开,也就是把每一项分开,然后都乘以2的某个次方,这个次方
转载
2024-08-12 10:49:05
89阅读
一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果 将
转载
2024-03-08 23:52:33
172阅读
我们的helloworld是从一个源程序开始的,该源程序由程序员通过编译器创建并保存的文件,文件名就是hello.c。这个hello.c的源程序,实际上是有0和1组成的序列。每一个0和1都成为一位,这些位被组织成8个一组,成为字节。文件组织形式是以ascii标准来表示文本字符,这种方式实际上就是用一个唯一的字节大小的整数值来表示每一个字符。Hello.c就是按照这样的字节序列来保存在文件中。像he
转载
2024-05-08 16:49:36
98阅读
1、bin() , oct() 或 hex() 进行十进制整数和二进制、八进制或十六进制的字符串的转换。 2、如果不想输出 0b , 0o 或者 0x 的前缀。 可以使用 format() 函数。二进制 bin()# 十进制 转 二进制
int_bin = bin(15)
print(int_bin) # '0b1111'
# 八进制 转 二进值
oct_bin = bin(0o17)
prin
转载
2023-06-06 23:02:11
686阅读
def main():
try: #读取二进制文件 实现复制图片文件的功能
with open('guido.jpg', 'rb') as fs1:
data = fs1.read()
print(type(data)) # <class 'bytes'>
with open('吉多.jpg'
转载
2023-06-07 13:35:44
236阅读
十进制转二进制:用2辗转相除至结果为1,将余数和最后的1从下到上倒序写,就是结果例:302302\2=151余0151\2=75余175\2=37余137\2=18余118\2=9余09\2=4余14\2=2余02\2=1余0故二进制为100101110二进制数的按位移动:一:左移:左移是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如:int i=1;i=i<<
原创
2015-10-21 17:31:04
1609阅读
1 https://www..com/nysanier/archive/2011/04/19/2020778.html 2 3 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 using namespace ...
转载
2018-07-25 17:23:00
198阅读
2评论
1 如果 x>0&&x&(x-1)==0 那么x为2的指数幂 0&(-1)==0
转载
2018-08-12 20:41:00
281阅读
2评论
二进制 二进制逢二进一,每位的取值只能是0或1 原码、反码、补码 注:计算机里都是以补码的形式存储数据的! 原码:最高位为符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制(以一个字节(8位)为例) 5 -5 原码:0000 0101 1000 0101 反码:正数的反码就是原码,负 ...
转载
2021-10-14 20:17:00
264阅读
2评论
【二进制安全】:一个二进制安全功能(函数)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作,其本质上将操作输入作为原始的、无任何特殊格式意义的数据流。【Redis☞String二进制安全】: String类型是二进制安全的,可以把图片和视频文件保存在String中。为了提高网站运行速度,可以使用String类型缓存一些静态文件,如图片文件、CSS文件等。struct sdshdr {i
转载
2023-05-25 10:40:18
229阅读
javafx 二进制 java二进制数
转载
2023-05-27 21:21:56
0阅读
1.人为什么使用十进制? 人有10个手指头。 2.计算机为什么用二进制? 因为CPU的引脚是为了通电用的。有时候是高电频,有的是低电频。为了区分,就用0和1表示,0表示低点频。1表示高点频。 二进制就是冯2进1. 十进制就是冯10进1. 3.十进制和二进制表数的共通点就是基数(radix) 十进制的基数为10 二进制的基数为2 4.二进制和十进制的转换 口诀 基数 * 位次幂+ 比如0101 转为
转载
2023-08-24 20:30:14
970阅读
#mkdir /apps (#创建文件夹)#cp redis-4.0.14.tar.gz /apps (#拷贝解压缩文件至创建的apps文件路径下)#cd /apps (#进入apps目录)#tar xvf redis-4.0.14.tar.gz (#解压XX.tar.gz文件)# l
转载
2023-06-07 11:33:45
299阅读
二进制是计算技术中广泛采用的一种数制,用0和1两个数码来表示的数。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。如果两份二进制文件存在差异,肉眼是很难快速并且地准确查找出差异部分的,那么这就要借助二进制比较工具来完成任务。现在各大网络平台上流传着许多比较二进制的软件,今天小编就给大家推荐几款好用的二进制比较软件。Beyond CompareBeyond Co
转载
2023-09-04 12:11:11
22阅读
一个高效的二进制数据补丁算法(原创)
作者:
housisong@hotmail.com 2006.04.11
tag:补丁,patch,补丁算法,后缀数组
(2013-05-31: 重新用C\C++实现的一个开源版本说明:
开源我的基于字节的数据补丁算法库HDiffPatch
转载
2024-08-12 15:10:03
36阅读