回覆列表
  • 1 # 使用者3614390018742

    提問需補充,就%d和%u的話,其實就是對一段位元組如何解析顯示的問題

    %d是把一段位元組當作有符號整數處理,最高位是符號位,如果是0,剩下的直接轉換為整數顯示,如果是1,剩下的按位取反+1(補碼)再轉換成整數

    %u是直接把整段位元組直接轉換成整數,視為沒有符號位

    所以,對於同樣的32個1位元,%u的處理方式就會得到uint32的最大值,4294967295即2³²-1,

    %d就是先看最高位是1所以定符號為負,剩餘31個1位元取反後是0,再加1是1,最後連起來就是-1

    m+1變負,盲猜m值是2147483647也就是2³¹-1,這個是int32也就是有符號32位整數的最大值。也有可能是32767或者127甚至9223372036854775807,分別是16位、8位、64位有符號整數的最大值

    對於任何整數,都是直接對其二進位制序列進行加減運算。例如一個8位整數127,二進位制是 01111111,如果+1,就得到10000000,根據有符號整數的顯示方式,就是-128(上溢),如果是無符號整數,就是128

  • 中秋節和大豐收的關聯?
  • 材料中,孟子認為大丈夫應具有怎樣的道德規範?