我想检查长位字符串中是否包含另一个位串。类似于:
if MyBitstringModule.contains(<<1, 2, 3, 4, 5>>, <<2, 3, 4>>) do
# do stuff
end
如果我有二进制文件,这将非常容易:我可以使用或。但是,这两种方法都只对二进制文件进行操作,因此对大小不能被8整除的位字符串也会失败。
到目前为止,我想出的最好的方法是这样的递归模式匹配(实际上不起作用!),这似乎是一种假象:
def contains(haystack, needle) when is_bitstring(haystac
对于赋值,我们应该修改自定义的BitString类。有超过10个函数,我们需要实际编写代码,我被困在第一个。这是类的开头部分,以及我试图使用的一些方法:
public class BitString implements Cloneable {
// An array to hold the bits that make up the bit string.
private boolean bits[];
/**
* A constant that defines the size of the default bit string.
*/
我试图使用以下代码生成一个随机的位串。
bitString = []
for i in range(0, 8):
x = str(random.randint(0, 1))
bitString.append(x)
''.join(bitString)
然而,与其给我这样的东西:
10011110
我得到的东西是这样的:
['1','0','0','1','1','1','1','0']
有人能指出我做错了什么吗?
我正在创建一个可以对文本进行编码和解码的huffman类,但是我的decode方法遇到了问题。我的编码方法运行良好,我的解码方法适用于较小数量的文本。但是当我尝试解码大量的文本时,我得到了一个最大的递归深度错误,并且不确定如何修复它。这个类接收一个包含字符及其频率的字典,然后将它们转换为节点并构建树。在构建树之后,它将字符及其位码放入另一个字典中,用于编码和解码。 class Node:
def __init__(self,value,data,left=None,right=None):
#Holds frequency
self.value = v
我需要找到所有不同的3位代码。使用3个嵌套的fro循环来完成扫描。 我想要取ive生成的位码数组,然后输出所有其他仅相差一位的代码。所以我试着生成一个8*3的二维数组。我知道有3个代码将只有一个数字的差异,但我就是找不到一种方法来编码出来。 这是我到目前为止所拥有的。 String[] codes = new String[8];
int count = 0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k <
我正在寻找一个类似于此的循环,用于将ASCII转换为十进制,然后将十进制转换为二进制字符串: string = for (“输入消息:")
#Convert string from ASCII to Decimal
A_string = [ord(c) for c in string]
print(A_string)
# add 1 to ASCII value
B_string = A_string
for i in range(len(B_string)):
B_string[i] = B_string[i] + 1
print(B_string)
#Decima
我试图用循环(请参阅下面的代码)修改一个位串,但是输入和输出是相同的。
bitstring = "100111001101010101010101"
print("old genome : " + bitstring)
for bit in bitstring:
if random.random() < 1:
print("old bit : " + bit)
bit = flipBit(bit)
print("ne
我需要将字符串转换为二进制,然后将此二进制数转换为十进制数。我所做的是向用户询问一个单词,将每个字符转换为列表索引,然后将每个索引转换为二进制,向后转换为二进制数,并转换为十进制。
没有起作用,我也不知道为什么。它说一个字符串没有to_bytes属性(我不记得我在哪里看到了这个语法,我正在寻找一种方法来转换成二进制,然后撤销它,我想我是在StackOverflow中找到的)。有人能帮我吗?代码如下:
import binascii
senha = list(input("Digite uma frase: "))
senha2 = senha[::-1]
for cha
我在Windows 8.1下运行Julia 1.0.2。
下面的内容让我相信Julia以"little-endian“的方式对待我的机器:
julia> VERSION
v"1.0.2"
julia> ENDIAN_BOM
0x04030201
help?> ENDIAN_BOM
search: ENDIAN_BOM
ENDIAN_BOM
The 32-bit byte-order-mark indicates the native byte order of the host machine. Little-endian
mach
我有一个类似下面这样的简单函数: def currencyConverter({ from, to, amount }) when is_float(amount) do
result = exchangeConversion({ from, to, amount })
exchangeResult = resultParser(result)
exchangeResult
end 我想保证from和to的字符串和金额都是浮点型的,如果不是这样,就显示一条自定义的错误消息,而不是erlang error。最好的方法是什么?
在ocaml toplevel中,我可以通过键入以下命令来使用“位字符串”包:
#use "topfind";;
#camlp4o;;
#require "bitstring.syntax";;
let data = 0l;;
let bits = BITSTRING { data : 32 };;
但是,如果我创建一个OCaml脚本,例如,foo.ml:
#!/usr/bin/env ocaml
#use "topfind";;
#camlp4o;;
#require "bitstring.syntax";;
let dat
我使用一个函数来构建一个字符串数组(碰巧只有0和1),它们相当大。函数在构建较小的字符串时工作,但是数据类型似乎将字符串的大小限制为32个字符长(U32),而不是我所要求的。我错过了一些简单的东西吗?
在构建字符串时,我首先将它们作为列表进行转换,以便在再次将它们加入字符串之前更容易地操作单个字符。我是否在某种程度上限制了用我的方法使用“较大”数据类型的能力?在本例中,np.max(CM1)的值类似于~300 (最近一次运行生成253),但字符串只有32个字符长.
''' Function to derive genome and count mutations in
我有下面的程序来给出一个最小的例子,我既不理解一般的位表示,也不理解Fortran。如果我用gfortran 7.5或ifort 18.0编译,它会传递所有断言,我不明白为什么。
函数返回I的二进制表示中所设置的位数(‘1’位)。
根据我的理解,有符号整数的符号是用一位编码的,所以如果我从popcnt(n)到popcnt(-n),它应该是1。如果我可以用2的幂表示n,那么它的popcnt应该是1或2(取决于符号)。我思考的错误是什么?
program bit_sizes
use iso_fortran_env, only: int64
implicit none
int
我有一张来自GigE相机的12位打包图像。它是一个小端点文件,每个3字节包含2个12位像素.我试着用python来读取这个图片,我尝试了这样的方法:
import bitstring
import numpy
with open('12bitpacked1.bin', 'rb') as f:
data = f.read()
ii=numpy.zeros(2*len(data)/3)
ic = 0
for oo in range(0,len(data)/3):
aa = bitstring.Bits(bytes=data[oo:oo+3], l
一个简单的问题。
我有一个<\class 'str'> (选中),其中包含一个长度为124的十六进制内容,名为hexapacket。
我是这样做的:
import bitstring
data = BitStream(hexa=hexapacket)
# My processing on bits
但它会引发错误,比如找不到长度等。
ValueError: invalid literal for int() with base 10: '0edd0e000201a9017dc0c3898000000000'
和
ValueError: Don