經歷過幾個時期,一直都用無符串的,總感覺有乙個符號位非常的不靠譜,編譯器什麼時候給你轉一下型別,或者幹了什麼
後來又覺得c嘛,不會管你的到底是-1/還是255,反正都一樣,什麼型別啊,都是浮動,不就是一段記憶體長這樣嘛
後來又變了,覺得unsigned char真是麻煩,還得這麼長或者typedef unsigned char uint8;又或者#include,然後就一律都是char *
真到今天,md5函式裡面,有乙個記憶體轉成字串的,才深刻認識到,原來,對於位元組流而言,符號位也是會影響的
有符號數擴寬填充符號位,
--------------------------------
"%02x" 多了6個 f
總結,位元組流,還是使用uint8_t*吧,多個#include不會死的
有符號與無符號
最高位為1,表示這個數為負數 最高位為0,表示這個數為正數 include int main 執行結果 正數的補碼為正數本身 負數的補碼為負數的絕對值各位取反後加1 8位整數5的補碼為 0000 0101 8位整數 7的補碼為 1111 1001 16位整數20的補碼為 0000 0000 0001...
無符號與有符號
一,小精度往大精度轉換。1.1c語言中比int小的整型 包括short unsigned short unsigned char和char 在運算中都要轉換成int然後進行運算 unsigned char a unsigned char b a b 10,a和b分別先轉換成int,再計算 1.2同精...
有符號與無符號討論
includeusing namespace std int main else int a2 1 unsigned char b2 1 if a2 b2 else char a3 1 unsigned int b3 1 if a3 b3 else unsigned int a4 32 int b4...