zoukankan      html  css  js  c++  java
  • c语言write与python的struct模块交互

    以下讲的都是用二进制形式打开文件。网上有很多struct模块的文章,下面是我做的小实验。

    1.对于c里面的fwrite写入一个单字节,写的就是它的二进制。如3,写入文件就是二进制0x03,它并不是3的ascii码,即0x33;而python的struct模块与它一样,例如val = struct.pack('B', 3),返回的val是字符串'0x03',write写入的参数必须字符串类型,因此可以直接将val写入文件。如果此时用read读一个字节出来,它是二进制'0x03',不能显示为正常的ascii码。必须通过struct.unpack('B', val)转成有意义的十进制3输出。

    2。对于python的write,它只接受字符串类型的参数。当写入十进制3的时候,它会被转成'0x33'即它的ascii码存储。如果用read读出来它,可以print出来的值是3.但是此时如果用struct.unpack('B', val)转换的话,print出来的就是51。

    简单而言,对于数字3,直接write写的是整数3的ascii码二进制的字符串;而通过struct是将3转为自身的二进制的字符串。

  • 相关阅读:
    前端
    小程序开发
    mpvue开发小程序
    (33)Vue购物车
    Vue的使用你学会了吗?
    (32)Vue模板语法
    (31)Vue安装
    (3)Angular的开发
    (2)Angular的开发
    (1)Angular的开发
  • 原文地址:https://www.cnblogs.com/pangblog/p/3397822.html
Copyright © 2011-2022 走看看