第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中對負(fù)十六進(jìn)制值使用 strconv

在 Go 中對負(fù)十六進(jìn)制值使用 strconv

Go
富國滬深 2021-06-01 13:28:48
過去一天左右,我一直在無緣無故地使用 Go 構(gòu)建一個匯編程序,以便我可以熟悉該語言。這是我使用 Go 的第一個真正的程序,所以我預(yù)料到了問題,但是我一次又一次地出現(xiàn)了一致的錯誤。我只是想出了在其他情況下修復(fù)它的其他hacky方法,但這次我想我需要一個答案,所以我覺得我實際上做對了?;旧?,我必須解析大量的字節(jié)值。其中一些是有符號字節(jié),所以 -1 = 0xFF 等等。在計算標(biāo)簽的地址時,我需要找到它與當(dāng)前地址的偏移量。以下代碼是我用來獲取偏移量的精簡版基本版本://  lbladdr holds the target label address//  address holds current address in memory//  label[x] holds the offsetif address > lbladdr {    lbladdr -= address}label[x] = strconv.FormatInt(int64(lbladdr), 16)這適用于正值,但是當(dāng)我得到一個負(fù)地址(地址 > lbladr)時,我得到的是 -2,而不是像 FE 這樣的值。我不明白為什么標(biāo)準(zhǔn)庫會在十六進(jìn)制數(shù)后附加一個負(fù)號,而且我在文檔中找不到任何關(guān)于它的內(nèi)容。我已經(jīng)看了很多其他地方,但我似乎也找不到任何有同樣問題的人。我希望這只是一個簡單的修復(fù)。
查看完整描述

2 回答

?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊

在十六進(jìn)制數(shù)上使用負(fù)號是完全合理的。我知道在使用匯編程序時,通常使用實際的位模式作為您以十六進(jìn)制表示的寄存器來表示符號。然而,Go 并不知道你在這樣做。go 的格式化函數(shù)也不是為了支持十六進(jìn)制值而編寫的,因為它們在 CPU 寄存器中。此外,位模式將根據(jù)寄存器大?。?6 對 32 對 64 和大對小端)而有所不同。你會把它們儲存在里面。所以基地不足以按照你想要的方式打印它們。您將需要編寫自己的格式庫,該庫支持您要表示的寄存器類型的格式。


查看完整回答
反對 回復(fù) 2021-06-07
  • 2 回答
  • 0 關(guān)注
  • 416 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號