當使用「%x」格式說明符列印整數值-1 時,Go 和C 的行為不同。在 Go 中,輸出為“-1”,而在 C 中,輸出為“ffffffffffffffff”,正如預期的那樣。
Go 的行為
Go 考慮「%x」 " 格式說明符以十六進位表示法表示數字的值,無論它是否為負數。因此它是否為負數。 ,對於-1,十六進位值為「-ff」。說明符。 >
實現類似C 的行為在Go 中,在應用「%x」格式說明符之前,必須明確地將有符號整數轉換為其無符號整數。Go 預設行為的基本原理
Go 開發者Rob Pike 解釋了Go 預設行為背後的原因:"為什麼這不是預設的[無符號格式]?因為如果是的話,就無法將某些內容列印為負數,這正如你所看到的,這是一個更短的表示。 ”以上是為什麼在使用“%x”時,Go 將負整數列印為“-ff”,而 C 則列印“ffffffffffffffff”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!