我對校驗和很陌生,對編程相當陌生。我有一個相當簡單的C++程序(測量psi),我將其轉移到Arduino板上。 crc16會好嗎,或者我應該與crc32一起使用還是會過度殺傷?如何爲簡單的C++程序選擇正確的校驗和,以及如何實現它?
-2
A
回答
0
檢查可執行文件是否已正確傳輸到Arduino主板的一種可能方法是使用簡單的校驗和,如md5,或者甚至更簡單一些,如某些粗糙散列函數計算16位散列。見例如this answer獲得靈感。
0
校驗和出現在不可靠的通信通道中。溝通渠道是一種抽象;位一端走到另一端。一個不可靠頻道只是意味着出來的位不同於進入的位。
現在很明顯,最極端的不可靠通道出現了隨機位。這是無法使用的,所以我們專注於輸入和輸出相關的渠道。
不過,我們有很多不同的腐敗模型。一種常見的模式是每一位P%都可能失敗。另一種常見模型認爲誤碼通常以突發形式出現。然後每個比特有P%的機會開始一個長度爲N的錯誤,其中每個比特有50%可能是錯誤的。還有更多的模型存在,取決於你的問題 - 更先進的模型也考慮到位完全缺失的機會。
正確的校驗和具有非常非常高的檢測模型預測的錯誤類型的可能性,但對其他類型的錯誤可能不適用。
例如,我認爲在互聯網IP層,最常見的錯誤是整個IP數據包丟失。這就是TCP使用序列號來檢測這個特定錯誤的原因。
相關問題
- 1. 如何選擇正確的JavaScript框架以及如何開始?
- 2. 如何選擇正確的行爲來實現邏輯業務
- 3. C++簡單程序實現
- 4. ivars以及如何正確實例化它們的值(iPhone)
- 5. 如何確定CostraintValidator實現中的用戶區域以選擇驗證例程?
- 6. 如何實現簡單的C++函數
- 7. C語言中的循環以及如何正確使用它
- 8. C++ 11:它的gc接口是什麼,以及如何實現?
- 9. 校驗和的選擇
- 10. 如何實現校驗和和冗餘的Damm算法
- 11. node.js中的setKeepAlive如何工作以及如何實現它?
- 12. Android測驗應用程序以及如何爲多個正確答案編碼
- 13. 簡單校驗和算法
- 14. 什麼是循環冗餘校驗以及它如何在簡單的條件下工作(傻瓜式樣)?
- 15. matlab的bwarea函數如何工作,以及如何在C中實現它?
- 16. Maya的dnoise函數:它做什麼以及如何實現它?
- 17. C++不正確的校驗和爲釋放的對象-
- 18. 任務以及如何正確使用它們C#
- 19. ICMP校驗和不正確
- 20. 什麼樣的意圖用於選擇應用程序,以及如何聽它?
- 21. 如何調用這個組件,以及如何實現它
- 22. 如何在boost中實現boost :: property_map以及如何更改它
- 23. 它是什麼以及如何實現這種行爲?
- 24. Deedle Frame.mapRows如何正確地使用它,以及如何構建objectseries正確
- 25. CouchDB簡單選擇正確的方式?
- 26. 如何殺死正在運行的程序以及如何截獲它們?
- 27. Cognito:如何正確地實現增強簡化認證流程
- 28. 如何用簡單的jmp程序集實現import lib?
- 29. 如何在我的簡單應用程序中實現反射?
- 30. 如何實現Quartz.net調度程序簡單的HelloWorld
你用什麼校驗和?沒有動機,我們無法回答你的問題。所以請**編輯您的問題**以改善它。 –
如果您的需求需要密碼學強大的摘要,請相信我:不要自己寫。使用一個衆所周知的,測試良好的密碼庫。如果您需要一個簡單的crc32或類似的非加密檢查,您可以編寫它,但老實說,公衆中已經有很多這樣的事情了,我無法想象您需要這樣做。這主要是基於需求的,只有你知道需要你的情況。 – WhozCraig
你確定「準確性」在你的問題中是正確的詞嗎?你的意思是「正確性」嗎? –