Re: [問題] crc檢查

看板Python作者 (我抓得到什麼呢?)時間11年前 (2013/01/06 14:29), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串2/2 (看更多)
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

01/06 20:31, , 1F
謝謝您的說明~不過我執行之後,出現
01/06 20:31, 1F

01/06 20:32, , 2F
UnicodeEncodeError: 'cp950' codec
01/06 20:32, 2F

01/06 20:32, , 3F
can't encode character '\xa0'
01/06 20:32, 3F

01/06 20:38, , 4F
因握我需要把crc再檢查一次,看看是否正確,所以那些
01/06 20:38, 4F

01/06 20:40, , 5F
字串會一直變動,如果碰到像a的字串,又該怎麼處理呢
01/06 20:40, 5F

01/06 20:41, , 6F
因為 字元
01/06 20:41, 6F

01/06 22:30, , 7F
因為你print的時候碰到顯示不了的字元..
01/06 22:30, 7F

01/06 22:31, , 8F
把print(a)和print(b)先拿掉吧
01/06 22:31, 8F

01/07 16:20, , 9F
原來如此!!感謝您~~
01/07 16:20, 9F
文章代碼(AID): #1GwHdVrU (Python)
討論串 (同標題文章)
文章代碼(AID): #1GwHdVrU (Python)