0
나는 ASN.1을 배우기 시작했고 pyasn1을 사용하여 실험을했습니다. 기본적으로 pyasn1은 10을 사용하여 실수를 인코딩합니다. 또한 지원베이스 2이고 내 프로그램에서베이스 2를 사용해야합니다. 하지만 인코딩에 문제가있는 것 같습니다.ASN.1 기본 2의 실수 인코딩 (pyasn1 포함)
from pyasn1.type import univ
from pyasn1.codec.ber import encoder, decoder
import binascii
for i in xrange(4):
r=univ.Real((1,2,-i))
m=encoder.encode(r)
print r,"->",decoder.decode(m)[0],"data:",binascii.b2a_hex(m)
출력은 :
1.0 -> 2.0 data: 0903830101
0.5 -> 2.0 data: 0903830101
0.25 -> 0.25 data: 090380fe01
0.125 -> 0.125 data: 090380fd01
두 숫자 0.5와 동일한 순서로 인코딩 1.0 인 코드 번호 0.5 기지국 2에서 1.0 테스트 코드 인 경우 I 이상한 행동을 발견 2.0으로 디코딩 된 번호. 동일한 동작은 BER 및 DER 인코더 모두에서 발생합니다.
무엇이 잘못되었는지를 알려주세요.
의 모습이 선을 대체 encoder.py : 현재 버전에 대한 은 수정 다음 변경을하는 것입니다 이 버그는 pyasn1 –
의 최신 버전에서 수정되었습니다. 수정은 실제로 현재 개발 버전에만 있습니다. –