1
我最近開始在scala中工作,並且需要創建一個MD5的實現。這是我的理解,MD5需要無符號類型,該scala不附帶。由於我將很快開始使用無符號類型的鑿子,我決定實施它的庫。到目前爲止,一切似乎都很好,除非在執行下面的按位操作時,我的F值變爲-271733879,這會導致出現一個錯誤「由於:java.lang.IllegalArgumentException:要求失敗:UInt文本-271733879爲負面」,因爲UInts無法是負面的。鑿子UInt負值錯誤
if(i<16){
F = ((B & C) | ((~B) & D))
g = i
}
還有更多的錯誤信息,但它僅僅是不同的庫和類,有因爲這個錯誤的錯誤的跟蹤名單,因此我沒有張貼,因爲我不認爲這很重要。如果是這樣,我可以編輯併發布。
我的B,C和D值等於下面列出的小寫等價物,它是第一次通過for循環,因此它們尚未更新。
var a0 : UInt = UInt(0x67452301)
var b0 : UInt = UInt(0xefcdab89)
var c0 : UInt = UInt(0x98badcfe)
var d0 : UInt = UInt(0x10325476)
任何幫助將不勝感激。