c++读取.dat文件

您所在的位置:网站首页 微信变换语言 c++读取.dat文件

c++读取.dat文件

2024-07-13 06:34| 来源: 网络整理| 查看: 265

异或,英文为exclusive OR,缩写成xor

异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。例如:

5ef4d23782793f8b45ee54b669f88577.png

十六进制(简写为hex或HEX下标16):

C语言、C++、Shell、Python、Java语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。对于字符量C语言中则以x+两位十六进制数的方式表示,如xFF。

.dat文件16进制解码

b04fe941e4ef34ff55c7c3d25f872ae9.png

.jpg文件16进制解码

8adc926fca041c287df649d8b224fc05.png

异或运算结果:0x8

b6271f9842863261772c342e2f04ea0d.png

转码程序:

import os

#微信image文件路径

into_path=r'F:Pythonfileweixin'

#微信图片转码后的保存位置

out_path = r'F:Pythonfileweixinweixin_picture/'#或写成F:Pythonfileweixinweixin_picture

def imageDecode(f,fn):

"""

解码

param f: 微信图片路径

param fn:微信图片目录下的.bat

return:

"""

# 读取.bat

dat_read = open(f,"rb")

# 图片输出路径

out = out_path + fn + ".jpg"

# 图片写入

png_write = open(out,"wb")

# 循环字节

for now in dat_read:

for nowByte in now:

# 转码计算

newByte = nowByte ^ 0x8

# 转码后重新写入

png_write.write(bytes([newByte]))

dat_read.close()

png_write.close()

# pass

def findFile(f):

"""

寻找文件

param f:微信图片路径

return:

"""

# 把路径文件夹下的文件以列表呈现

fsinfo = os.listdir(f)

# 逐步读取文件

for fn in fsinfo:

# 拼接路径:微信图片路径+图片名

temp_path = os.path.join(f,fn)

# 判断目录还是.bat

if os.path.isfile(temp_path): #temp_path需为绝对路径,判断是否为文件,也可 if not os.path.isdir(temp_path):

print('文件路径:{}'.format(temp_path))

print(fn)

# 转码函数

imageDecode(temp_path,fn)

else:

pass

# 运行

findFile(into_path)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3