直奔主題吧!
8位有符號數的取值範圍是-128~+127,為什麼呢?
首先我們知道,計算機以補碼的形式儲存的,正數的補碼是原碼不變,負數的補碼是原碼的取反加1。
我們先來看+127,原碼0111 1111對吧,若+128是多少呢,0111 1111 + 1 = 1000 0000 (原碼),然後儲存時,計算機一看是最高位為1,就保持符號位不變,後面7位取反加1,然後呢,進製捨棄,還是1000 0000(-128)。所以對於8位資料來說,+128 實際上變成 - 128。
對於-128我們來看,首先對於負數,計算機處理是保持符號位不變,剩餘位先取絕對值然後取反加1,128(取絕對值)1000 0000 取反(1111 1111),加1 (1000 0000),所以-128的補碼是1000 0000(原碼和補碼一樣的),下面,我們來看一下-129的值,-128的原碼為 1000 0000 減1 等於0111 1111 (原碼計算就沒有那些規矩了,直接計算就行了),然後儲存,計算機一看正數,就直接儲存了+127.
strlen()函式是返回乙個字串的長度,遇到'\0'結束。
8位16位32位資料的拆分與合併程式
拆分 16位拆成兩個8位 u16 data16 0x1234 u8 data8 h,data8 l data8 h u8 data16 8 data8 l u8 data16 32位拆成4個8位 方法一 u32 data32 0x12345678 u8 data8 1,data8 2,data8 3...
8位16位32位資料的拆分與合併程式
拆分 16位拆成兩個8位 u16 data16 0x1234 u8 data8 h,data8 l data8 h u8 data16 8 data8 l u8 data16 32位拆成4個8位 方法一 u32 data32 0x12345678 u8 data8 1,data8 2,data8 3...
8 位數碼難題的問題求解
include include include include include includeusing namespace std struct node 可理解為當前狀態地圖資訊 結構體 char begin 5 5 over 5 5 開始地圖和結束地圖 已知.int x1,y1 記錄空格座標 ...