我有一个定义为的数据结构
struct myDataStruct
{
int32_t header;
int16_t data[8];
}
Run Code Online (Sandbox Code Playgroud)
我想获取一个字符流并将其转换为myData流.我应该扩展哪个流类?我想创建一个自定义流类,以便我可以做类似的事情
myDataStruct myData;
myDataStruct myDataArray[10];
myDataStream(ifstream("mydatafile.dat"));
myDataStream.get(myData);
myDataStream.read(myDataArray, 10);
Run Code Online (Sandbox Code Playgroud) urllib2请求接收二进制响应,如下所示:
00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41
97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A 47
0F C6 14 00 00 01 16 6A E0 68 80 41 93 B4 05 41
97 1E B8 41 90 7A E1 41 96 8F 57 46 E6 2E 80 00
00 01 16 7A 53 7C 80 FF FF
Run Code Online (Sandbox Code Playgroud)
其结构是:
DATA, TYPE, DESCRIPTION
00 00 …Run Code Online (Sandbox Code Playgroud) 使用Python(3.1或2.6),我试图从GPS接收器生成的二进制数据文件中读取数据.每小时的数据存储在一个单独的文件中,每个文件大约18 MiB.数据文件有多个可变长度记录,但是现在我需要从其中一个记录中提取数据.
我已经有了能够解码头部的程度.我有点说,因为有些数字没有意义,但大多数都没有.花了几天时间(我开始学习使用Python编程),我没有取得进展,所以是时候寻求帮助了.
参考指南为我提供了消息头结构和记录结构.标头长度可变,但通常为28个字节.
Header
Field # Field Name Field Type Desc Bytes Offset
1 Sync char Hex 0xAA 1 0
2 Sync char Hex 0x44 1 1
3 Sync char Hex 0x12 1 2
4 Header Lgth uchar Length of header 1 3
5 Message ID ushort Message ID of log 2 4
8 Message Lgth ushort length of message 2 8
11 Time Status enum Quality of GPS time 1 13
12 Week ushort GPS week number 2 …Run Code Online (Sandbox Code Playgroud) 我想在C#模块中包含一个大型查找表(100,000个3字节值).
是否有编译器指令将外部文件中的二进制数据加载到静态字符串中?
我有三个整数{ a,b,c下面的值之间}该范围(比方说):
a - {1到120,跳跃1}
b - {-100到100,跳跃为5}
c - {1到10,跳跃1}
由于空间的考虑,我想表示使用1字节ONLY,意义,一个整数(在-127..128的范围内)这三个值将代表的{结果a,b,c},并被存储在二进制格式化为磁盘.
后来,当我读到的二进制数据,我会知道如何"解析"这1个字节得到的值{ a,b,c}.
知道如何实现吗?(注意:如果需要,为了支持这种设计,我可以在范围上"妥协";例如,a可以在5的跳跃中b也可以在10等的跳跃中)
我正在解析包含字符串的文件(我不生成).字符串总是以2个字节开头,告诉我后面的字符串的长度.
例如:
05 00 53 70 6F 72 74
Run Code Online (Sandbox Code Playgroud)
将会:
Sport
Run Code Online (Sandbox Code Playgroud)
使用C#BinaryReader,我使用以下方法读取字符串:
string s = new string(binaryReader.ReadChars(size));
Run Code Online (Sandbox Code Playgroud)
有时会出现奇怪的时髦角色,这似乎会推动流的位置超出应有的位置.例如:
0D 00 63 6F 6F 6B 20 E2 80 94 20 62 6F 6F 6B
Run Code Online (Sandbox Code Playgroud)
应该:
cook - book
Run Code Online (Sandbox Code Playgroud)
虽然它读得很好,但流最终会比它应该延伸两个字节?!(然后会弄乱其余的解析.)
我猜它与中间的0xE2有关,但我不确定为什么或如何处理它.
任何建议都非常感谢!
我正试图通过RCON协议从node.js与SRCDS服务器通信.RCON协议似乎已经足够解释,可以在每个主要编程语言的网站底部找到实现.使用它们很简单,但理解协议和开发JS库是我打算做的.
作为一名自学成才的程序员,我跳过了很多计算机科学基础知识 - 只学习了我需要的东西,完成了我想要的东西.我开始使用PHP进行编码,最终围绕OO,与数据库等进行了交谈.我目前正在使用JavaScript进行编程,更具体地说是使用node.js进行Web编写.
我已阅读并理解绝对二进制基础知识.但是当谈到数据包数据时,我完全迷失了.我想阅读并理解wireshark输出,但是如果它没有任何意义.我最大的问题可能是我不明白JS的各种INT和STRING(char ..)的二进制表示是什么样的,以及我如何将从服务器获得的数据转换为程序中可用的东西.
如果有人能指点我这些主题的教程,我将不胜感激.教程,如"只有凡人才能理解的解释,最好不是由CS教授写的".:)当我看到PHP参考实现时,我看到(太多)魔术发生在那里我无法翻译成JS.从套接字发送和读取数据没有问题,但我需要知道PHPs解包函数如何分别如何在JS中使用node.js.
所以我希望你能看到我在这里想要完成的事情.首要的是理解实现协议所需的整个理论.但是因为我只使用脚本语言,如果有人可以在PHP/JS的HOWTO部分中指导我,那将会非常有用.
非常感谢您的参与!
所以我有一个关联将一对Ints与一个Vector[Long]最大为10000 的s 相关联,并且我有几十万到一百万这样的数据.我想将它存储在一个文件中,以便以后在Scala中处理.
显然,以纯文本格式存储它会占用太多空间,所以我一直试图通过编写Byte流来弄清楚如何做到这一点.但是我不太确定这是否会起作用,因为在我看来byteValue(),a Long返回Byte仍然是4个字节长的表示,因此我不会保存任何空间?我没有太多使用二进制格式的经验.
似乎Scala标准库有BytePickle可能是我想要的,但后来被弃用了?
HDF5数据存储使用C约定,即如果我在二进制文件中存储矩阵A(N,M,K),则存储数据的最快变化维度将具有N.显然当我使用Fortran包装器时HDF5,HDF5自动转换矩阵,与C一致.
我有一个大小(256乘128乘256)的数据存储在fortran编写的无格式二进制文件中.我试图通过使用下面给出的程序将其转换为h5格式.但最终输出给出了存储矩阵的维数(128,256,256).我不知道如何确保最终的hd5文件可以在可视化软件(Paraview)中正确显示.
PROGRAM H5_RDWT
USE HDF5 ! This module contains all necessary modules
IMPLICIT NONE
CHARACTER(LEN=6), parameter :: out_file = "out.h5" ! File name
CHARACTER(LEN=6), parameter :: in_file = "in.dat" ! File name
CHARACTER(LEN=4), parameter :: dsetname = "vort"! Dataset name
CHARACTER(LEN=50) :: len
INTEGER(HID_T) :: in_file_id ! File identifier
INTEGER(HID_T) :: out_file_id ! File identifier
INTEGER(HID_T) :: dset_id ! Dataset identifier
INTEGER(HID_T) :: dspace_id ! Dataspace identifier
INTEGER :: in_file_id = 23
INTEGER :: nx = 256, ny=128, nz=256 …Run Code Online (Sandbox Code Playgroud) 我正在学习C++特别关于二进制文件结构/操作,因为我对二进制文件,位,咬和十六进制数字的主题完全不熟悉,所以我决定向后退一步,对主题建立一个扎实的理解.
在下面我已经包含的图片中,我blue thief在一个.txt文件中写了两个单词().

原因是,当我使用hexeditor解码文件时,我想了解信息是如何以十六进制格式存储的.现在,不要误解我的意思,我并不是试图通过整天阅读十六进制格式来谋生,而只是对二进制文件组合的基本知识有最低限度的理解.我也知道所有文件都有不同的结构,但只是为了理解,我想知道,"蓝色小偷"和单个' '(空格)这些词是如何被转换成这些字符的.
还有一件事是,我听说二进制文件包含三种类型的信息:
header,ftm&和data!那只关注音频,视频等多媒体文件吗?因为,我似乎看不到任何东西,除了它看起来data只是这个文件中的一块.