詳解原碼、反碼與補碼存儲與大小
屯溪網站建設公司成都創新互聯公司,屯溪網站設計制作,有大型網站制作公司豐富經驗。已為屯溪上千提供企業網站建設服務。企業網站搭建\外貿網站建設要多少錢,請找那個售后服務好的屯溪做網站的公司定做!
原碼:
如果機器字長為N個bit,那么一個數的原碼就是N位二進制數,最高位
是符號位,1代表負數,0代表正數。
反碼:
正數的反碼就是原碼,負數的反碼就是符號位不變,其他取反。
補碼:
正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
(計算機中的數都是以補碼形式存儲的)
補碼的形式是為了進行正負數二進制的加減操作
char為1個字節,8個bit位,看看內存中是怎么存儲的
十六進制 二進制(補碼) 反碼 原碼 實際值 char a = 127; //7f 0111 1111 127 char b = 128; //80 1000 0000 0111 1111 1000 0000 -128 char c = -128; //80 1000 0000 0111 1111 1000 0000 -128 char d = -1; //ff 1111 1111 1111 1110 1000 0001 -1
-128可能大家會有疑問,1000 0000是負數,按補碼反碼原碼的方式往回推減一為0111 1111,取反1000 0000為128,因為是負數所以就是-128.
所以signed char的最大值為127,最小值為-128.
unsigned是無符號的意思,就是沒有符號位。
unsigned char e = 256; //00 0000 0000 0 unsigned char f = -1; //ff 1111 1111 255 unsigned char g = 255; //ff 1111 1111 255
因為沒有符號位,所以原反補碼都一樣,為什么-1的值為255呢,-1的原碼是0000 0001(沒符號位),反碼1111 1110,補碼
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
網頁標題:詳解原碼、反碼與補碼存儲與大小
網站URL:http://vcdvsql.cn/article46/gjeihg.html
成都網站建設公司_創新互聯,為您提供網站制作、網站改版、企業網站制作、小程序開發、外貿建站、
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯