C語言中負數的存儲方式


詳細介紹負數的文章:

https://blog.csdn.net/daiyutage/article/details/8575248

1.以char類型舉例,其取值范圍是 -128 ~ 127,即-2E7 ~ 2E7-1, 用最高位表示其符號,0表示正數,1表示負數。數值以補碼形式存儲。正數的補碼就是該正數本身,負數的補碼需要轉化,如下:
    1>.對負數取絕對值,用二進制表示
    2>. 對每一位取反;
    3>. 對該數加1。
注意:char類型的0 沒有+0 和 -0 的區分,即使想區分,按照上述操作,得到的都是 0000 0000

舉例:-1 取絕對值0000 0001 -> 取反1111 1110 ->加1得到 1111 1111

下面是一些數值的補碼格式:

-128 存儲數值 1000 0000     

-127 存儲數值 1000 0001

-126 存儲數值 1000 0010

.....

-3    存儲數值 1111 1101

-2    存儲數值 1111 1110

-1    存儲數值 1111 1111

0    存儲數值 0000 0000

1    存儲數值 0000 0001

2    存儲數值 0000 0010

3    存儲數值 0000 0011

...

125 存儲數值 0111 1101

126 存儲數值 0111 1110

127 存儲數值 0111 1111

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM