我正在寻找脚本(或更高级别的编程)语言(或者例如Python或类似语言的模块),以便毫不费力地分析和操作文件中的二进制数据(例如核心转储),就像Perl允许非常流畅地操作文本文件一样.
我想要做的事情包括以各种形式(二进制,十进制,十六进制)呈现数据的任意块,将数据从一个endianess转换为另一个endianess,等等.也就是说,你通常会使用C或汇编的东西,但我是寻找一种语言,允许非常快速地编写一小段代码用于高度特定的一次性目的.
有什么建议?
我有一个MySQL数据库,其中包含一个带二进制类型列的表.我希望能够投射该列而不必通过它,例如,HEX().是否mysqlCLI工具有一个配置选项或其他手段的方式,不会为我的控制台输出任意字节在热闹的/恼人的方式来解释显示二进制数据的表示?
在R中,我想生成离散随机变量的随机样本:X,其中:P(X=a)=P(X=-a)=1/2.我一直在网上搜索功能,但似乎没有直接的功能这样做.
我正在开发一个打开二进制文件的Web应用程序,并允许对它们进行编辑.
这个过程基本上就是 ondrop -> dataTransfer.files[0] -> FileReader -> Uint8Array
基本上,我希望能够将修改后的文件保存为二进制文件.理想情况下,作为具有指定文件名的文件下载.
似乎没有任何标准方法可以做到这一点,这很糟糕,因为到目前为止的一切都得到了很好的支持.
我目前正在使用String.fromCharCode()base64编码将数组转换为字符串,并在超链接中使用数据uri data:application/octet-stream;base64,..,以及download指定文件名的属性.
它似乎工作,但它很hacky,我认为将原始字节转换为字符串可能会引入编码问题,具体取决于字节值.我不希望数据损坏或破坏字符串.
除此之外,是否有更好/适当的方法将字节数组作为二进制文件提供给用户?
考虑长度为n的所有二进制向量的集合S,其中每个包含正好m个; 所以每个载体都有nm零.
我的目标是从S构造一个数量k的向量,使得这些向量尽可能彼此不同.
举一个简单的例子,取n = 4,m = 2和k = 2,那么可能的解是:[1,1,0,0]和[0,0,1,1].
这似乎是编码理论文献中的一个开放性问题(?).
有没有办法(即算法)找到一个次优但好的解决方案?
汉明距离是在这种情况下使用的正确性能指标吗?
一些想法:
在本文中,作者提出了几种算法来找到向量子集,使得成对汉明距离> =某个值 d.
我已经实现了如下随机方法:取一个 SS,它由 S中的任何向量初始化.然后,我考虑 S中的剩余向量.对于这些矢量中的每一个,我检查该矢量相对于 SS中的每个矢量是否至少具有距离 d.如果是,则将其添加到 SS.
通过取最大可能 d,如果 SS的大小> = k,那么我将 SS视为最优解,并且我从 SS中选择 k个向量的任何子集.使用这种方法,我认为导致 SS将取决于初始向量的识别 SS ; 即有多种解决方案(?).
但是如果 SS的大小< k,怎么办?
从本文提出的算法中,我只理解了随机算法.我对二进制词典搜索(第2.3节)感兴趣,但我不知道如何实现它(?).
algorithm combinatorics binary-data hamming-distance data-structures
我已经看过几个 教程,解释如何将二进制图像转换为encode64表示:
var image = new Buffer(bl.toString(), 'binary').toString('base64');
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何将此字符串表示返回给它的缓冲区的二进制数据.
我阅读了以下链接和其他来源,但没有找到我的问题的答案.
我通过串口与嵌入式设备通信.默认情况下,嵌入式Linux使用此端口作为终端.但我想通过端口传输二进制数据(服务数据包).我的/ etc/inittab文件有一个"getty"调用: console :: respawn:/ sbin/getty 115200 ttyS0
我还有/ etc/passwd文件,其中"admin"用户在登录后启动我的"cli"应用程序: admin:8Mt/Jtxcyg8AY:1000:0:admin:/ tmp:/ tmp/cli
运行程序之前我的默认ttyS0设置是:
~ # stty -a
speed 115200 baud;stty: standard input
line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ^J;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; …Run Code Online (Sandbox Code Playgroud) 这个网站过去帮了我很多,但现在我迷路了.在此先感谢您的指导.
我有一个包含二进制值的MySQL表,如下例所示.我不能改变桌子.
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nid` binary(16) NOT NULL,
`test` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`))
Run Code Online (Sandbox Code Playgroud)
这是nid的示例值:( ÞFÈ>ZPÎ×jRZ{æ× 并非所有显示,但所有16都在那里)
现在我想创建一个SQL查询来查找该值为true的行的id.
SELECT id FROM test WHERE nid = 'ÞFÈ>ZPÎ×jRZ{æ×';
Run Code Online (Sandbox Code Playgroud)
......不起作用.任何的想法?
解决方案 以HEX格式获取nid就可以了.它导致DE46C83E5A50CED70E6A525A7BE6D709,当我在这样的查询中使用它时......
SELECT id FROM test WHERE HEX(nid) = 'DE46C83E5A50CED70E6A525A7BE6D709';
Run Code Online (Sandbox Code Playgroud)
我得到了正确的结果.
我在我的数据库中有图像的二进制数据,我想在ASP.NET中的图像控件中显示它.怎么样?如果不可能,请找到另一种方法将其保存在数据库中并将其显示在图像控件中.
我在RAID 5(4 x 7.2k @ 3TB)系统上有一些2TB只读(没有写入一次)文件.
现在我有一些想要读取该文件部分的线程.每个线程都有一个所需的块数组.每个块都通过文件偏移(位置)和大小(大多数约300个字节)来寻址.
读取此数据的最快方法是什么.我不关心CPU周期,(磁盘)延迟是重要的.所以,如果可能的话,我想利用硬盘的NCQ.
由于文件是高度压缩的,将随机访问,我确切地知道位置,我没有其他方法来优化它.
读取数据的最佳方法是什么?你有经验,技巧和提示吗?
binary-data ×10
c# ×2
file-io ×2
mysql ×2
.net ×1
algorithm ×1
asp.net ×1
console ×1
encoding ×1
fileparsing ×1
image ×1
javascript ×1
node.js ×1
patch ×1
php ×1
r ×1
scripting ×1
serial-port ×1
termios ×1
typed-arrays ×1