标签: binary

在Python中搜索/读取二进制数据

我正在阅读二进制文件(在这种情况下为jpg),并且需要在该文件中找到一些值.对于那些感兴趣的人,二进制文件是一个jpg,我试图通过查找这里详述的二进制结构来挑选它的维度.

我需要在二进制数据中找到FFC0,跳过一些字节数,然后读取4个字节(这应该给我图像尺寸).

在二进制数据中搜索值的好方法是什么?有没有相当于'发现',或类似的东西?

python binary search

22
推荐指数
5
解决办法
6万
查看次数

\ x00在二进制文件中的含义是什么?

有一次我问过一个人"ASCII和二进制文件有什么区别?"

他说"二进制文件总是有\ x00"

我一直在搜索这个,发现PHP中的\ x00,\ x04是什么意思

所以结论是,ASCII文件没有NULL字符?

binary ascii binaryfiles file

22
推荐指数
1
解决办法
4万
查看次数

给我一个Binary Parser.二进制数据的解析器

所以,我得到了这些数据.从网络套接字,或从文件中.我正在拼凑将解释数据的代码.读取一些字节,检查一些标志,一些字节表示后面有多少数据.读入那么多数据,冲洗,重复.

这个任务让我想起解析源代码.我对lex/yacc和antlr很满意,但他们不能胜任这项任务.你不能将比特和原始字节指定为标记(好吧,也许你可以,但我不知道如何),你不能把它们哄成"读取两个字节,使它们成为无符号的16位整数,称之为n,然后读取n个字节."

然后,当以系统方式定义协议/数据格式的规范(并非所有规范都是)时,应该有一种系统的方式来读取根据协议格式化的数据.对?

必须有一个工具来做到这一点.

binary parsing protocols

21
推荐指数
2
解决办法
5108
查看次数

我在哪里可以用psycopg2 for Windows下载二进制蛋?

我正在寻找带有psycopg2二进制文件的二进制蛋用于Windows,但找不到任何.
http://initd.org/psycopg/download/上有唯一的源包和链接到Psycopg的Windows端口,它提供二进制安装程序,但没有二进制蛋.

我正在寻找二元蛋的原因是我想在virtualenv中安装psycopg并且它不是(这个答案描述了为什么它通常可能的),标准的Windows安装程序可以在注册表中查找已安装的Python.

旁注:我猜psycopg是一个相当受欢迎的库,它让我觉得奇怪的是不能在项目页面上提供二进制蛋.我在这里错过了什么吗?

python windows binary egg psycopg2

21
推荐指数
1
解决办法
1万
查看次数

如何知道二进制整数是否代表负数?

我正在读一些C文本.在"否定"和"正面价值"会话中,作者提到了以二进制形式表示负数的几种方法.

我一直都明白,并且想知道如果给出二进制数,我们能否确定它是否为负数?

例如,-92具有8位二进制形式:10100100.但是如果我们给出的话我们10100100可以说是-92,而不是其他非负数吗?

c binary processor cpu-registers

21
推荐指数
3
解决办法
3万
查看次数

如何使用浮点数进行舍入

关于IEEE-754单精度浮点,你如何执行舍入到最近,在所需位置(默认和最常见的模式)中最接近偶数的四舍五入?

基本上我有保护位,圆位和粘滞位.因此,如果我们将它们组成一个向量并将其称为GRS,则以下规则适用:

  1. 如果G = 0,向下舍入(什么都不做)
  2. 如果G = 1,和,RS == 10RS == 01向上舍入(向尾数添加一个)
  3. 如果GSR = 111,圆到均匀

所以我不知道如何进行最接近的回合.任何帮助是极大的赞赏.

floating-point binary rounding

21
推荐指数
2
解决办法
3万
查看次数

浮点模数运算

我正在尝试实现三角学的范围缩减操作.但相反,我认为对输入数据执行模数pi/2操作可能会更好.我想知道什么算法存在并且对于32位IEEE 754浮点的这种操作有效?

我必须在汇编中实现它,所以只用一条指令就不能使用fmod,除法,乘法等.我的处理器使用16位字,我实现了32位浮点加法,减法,乘法,除法,平方根,余弦和正弦.我只需要范围缩减(模数)来输入余弦和正弦值.

c floating-point binary assembly modulo

21
推荐指数
3
解决办法
5万
查看次数

如何在没有反射的情况下将结构转储到字节数组中?

我已经找到了编码/二进制包来处理它,但它依赖于反射包,所以它不适用于非大写(即未导出)的struct字段.然而,我花了一个星期才发现问题,我仍然有一个问题:如果不应该导出struct字段,我如何将它们轻松转储到二进制数据中?

编辑:这是一个例子.如果您将Datastruct 字段的名称大写,那么它可以正常工作.但是Datastruct本来是一个抽象类型,所以我不想导出这些字段.

package main
import (
    "fmt"
    "encoding/binary"
    "bytes"
)

type Data struct {
    id int32
    name [16]byte
}


func main() {
    d := Data{Id: 1}
    copy(d.Name[:], []byte("tree"))
    buffer := new(bytes.Buffer)
    binary.Write(buffer, binary.LittleEndian, d)
    // d was written properly
    fmt.Println(buffer.Bytes())
    // try to read...
    buffer = bytes.NewBuffer(buffer.Bytes())
    var e = new(Data)
    err := binary.Read(buffer, binary.LittleEndian, e)
    fmt.Println(e, err)
}
Run Code Online (Sandbox Code Playgroud)

binary struct structure bytearray go

21
推荐指数
1
解决办法
1万
查看次数

Python:二进制到十进制转换

可能重复:
将二进制字符串转换为int

如何在Python中将此二进制值'101011111'转换为十进制形式?

该函数将二进制数转换为十进制数.

输入:字符串b:二进制数

输出:int d:b的十进制表示

def Binary_to_Decimal(b):
    #what needs to be filled in
    return d
Run Code Online (Sandbox Code Playgroud)

python binary function decimal

21
推荐指数
1
解决办法
10万
查看次数

Int到UInt(反之亦然)在Swift中进行位转换

我正在寻找一种直接的方法来将Int的位值转换为UInt,反之亦然.例如(为简单起见,使用8位整数)我想实现以下目的:

let unsigned: UInt8 = toUInt8(-1)  // unsigned is 255 or 0xff
let signed:   Int8  = toInt8(0xff) // signed is -1 
Run Code Online (Sandbox Code Playgroud)

起初我提出了以下解决方案:

let unsigned = unsafeBitCast(Int8(-1), UInt8.self)
let signed   = unsafeBitCast(UInt8(0xff), Int8.self)
Run Code Online (Sandbox Code Playgroud)

但Apple在"unsafeBitCast()"文档中声明如下:

..警告::打破Swift类型系统的保证; 小心使用.几乎总有一种更好的方法可以做任何事情.

有没有人有更好的方法?

binary macos casting ios swift

21
推荐指数
2
解决办法
2万
查看次数