用一個字節存儲無符號整數?
提問需補充,就%d和%u的話,其實就是對一段字節如何解析顯示的問題
%d是把一段字節當作有符號整數處理,最高位是符號位,如果是0,剩下的直接轉換為整數顯示,如果是1,剩下的按位取反+1(補碼)再轉換成整數
%u是直接把整段字節直接轉換成整數,視為沒有符號位
所以,對于同樣的32個1比特,%u的處理方式就會得到uint32的最大值,4294967295即232-1,
%d就是先看最高位是1所以定符號為負,剩余31個1比特取反后是0,再加1是1,最后連起來就是-1
m+1變負,盲猜m值是2147483647也就是231-1,這個是int32也就是有符號32位整數的最大值。也有可能是32767或者127甚至9223372036854775807,分別是16位、8位、64位有符號整數的最大值
對于任何整數,都是直接對其二進制序列進行加減運算。例如一個8位整數127,二進制是 01111111,如果+1,就得到10000000,根據有符號整數的顯示方式,就是-128(上溢),如果是無符號整數,就是128