作者kdjf (我抓得到什麽呢?)
看板Python
标题Re: [问题] crc检查
时间Sun Jan 6 14:29:47 2013
strA='\x04\x03\x04\x00\xa0\x00\x00' #string内容<04h>,<03h>,<04h>,........
crc = calcString( '\x04\x03\x04\x00\xa0\x00\x00', INITIAL)
print(strA)
print (hex(crc))
str = "04030400a00000"
a=''
for i in range(0,len(str),2):
a += r"\x" + str[i:i+2] #string内容:\,x,0,4,\,x,0,3.......
# or <5ch>,<78h>,<30h>,<34h>,........
print(a)
crc = calcString( a, INITIAL)
print (hex(crc))
b=''
for i in range(0,len(str),2):
b += chr(int(str[i:i+2],16)) #把string换成16进制的数字,再换成byte
#(py2x没有byte type,就别再意用词了@@)
print(b)
crc = calcString( b, INITIAL)
print (hex(crc))
程式语言用久了,就会习惯expression和实际的data不太一样了~
你打进去给interpreter看的(你写出来的)是expression
实际上在电脑中,或是你算出来( a+="\x" )的东西是data
很多高阶语言会有eval(),repr()可以把它们互相转换
But that is another evil....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.245.32
1F:推 blackspace98:谢谢您的说明~不过我执行之後,出现 01/06 20:31
2F:→ blackspace98:UnicodeEncodeError: 'cp950' codec 01/06 20:32
3F:→ blackspace98:can't encode character '\xa0' 01/06 20:32
4F:→ blackspace98:因握我需要把crc再检查一次,看看是否正确,所以那些 01/06 20:38
5F:→ blackspace98:字串会一直变动,如果碰到像a的字串,又该怎麽处理呢 01/06 20:40
6F:→ blackspace98:因为 字元 01/06 20:41
7F:→ kdjf:因为你print的时候碰到显示不了的字元.. 01/06 22:30
8F:→ kdjf:把print(a)和print(b)先拿掉吧 01/06 22:31
9F:推 blackspace98:原来如此!!感谢您~~ 01/07 16:20