首頁  >  文章  >  後端開發  >  為什麼在使用“%x”時,Go 將負整數列印為“-ff”,而 C 則列印“ffffffffffffffff”?

為什麼在使用“%x”時,Go 將負整數列印為“-ff”,而 C 則列印“ffffffffffffffff”?

Susan Sarandon
Susan Sarandon原創
2024-11-18 09:41:02952瀏覽

Why Does Go Print Negative Integers as

在Go 與C 中印出負十六進位整數

當使用「%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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn