日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机中符号位正负,负数在计算机中的表示+有符号无符号的区别+负数按位运算...

發(fā)布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机中符号位正负,负数在计算机中的表示+有符号无符号的区别+负数按位运算... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

部分轉載自:https://blog.csdn.net/kebi007/article/details/89741960

一.負數(shù)的二進制位表示法

原碼:一個整數(shù)按照絕對值的大小轉換成的二進制數(shù),稱為原碼

一個short 16位的整數(shù)9的原碼是:

0000?? ?0000?? ?0000?? ?1001

1

反碼:一個二進制數(shù)按位取反,所得的二進制數(shù)成為原二進制數(shù)的反碼

取9的二進制數(shù)的反碼,可以使用位邏輯非運算 ~

取反后的16位二進制

1111?? ?1111?? ?1111?? ?0110

1

補碼:反碼加1稱為補碼,簡而言之,要得到一個屬的補碼,先得到這個數(shù)的反碼,然后再將反碼加上1,所得數(shù)稱為補碼

那么9的補碼也就是

1111?? ?1111?? ?1111?? ?0110

1

加上1的結果,如下:

1111?? ?1111?? ?1111?? ?0111

1

即-9的16位二進制表示是

1111?? ?1111?? ?1111?? ?0111

1

如圖:

二.c#Int有符號的和無符號的區(qū)別

話不多說,直接明確三點結論:

1.實際開發(fā)中,都用的是有符號的Int(應該默認強制要求),只有整型有有無符號的特征,Double、Decimal,是沒有這種特征的。

2.無符號數(shù)中,所有的位都用于直接表示該值的大小。

3.有符號數(shù)中,最高位用于表示正負。

這里還是簡單地啰嗦幾句關于有符號和無符號的區(qū)別,UInt32和Int32的區(qū)別

這里說的Int指的是32位有符號的類型

Int32的值范圍是 -2147483648 至2147483647,也就是

-2的31次方到2的31次方-1

符號位表示的意義就在于此,最前面的位表示正負。

-2148483648的32位二進制是:

1000?? ?0000?? ?0000?? ?0000?? ?0000?? ?0000?? ?0000?? ?0000

1

2147483647的32位二進制是:

0111?? ?1111?? ?1111?? ?1111?? ?1111?? ?1111?? ?1111?? ?1111

1

那么c#中UInt32的最大值是什么呢?

UInt32的范圍是0到2的32次方4294967295,最大值32位二進制是

1111?? ?1111?? ?1111?? ?1111?? ?1111?? ?1111?? ?1111?? ?1111

1

所以得出結論無符號只能表示正數(shù),有符號可以表示正負數(shù)。

三.按位運算

負數(shù)按位運算時,是按計算機存儲的格式進行按位運算的,即以補碼的形式,可以認為:

所有的按位操作符的操作數(shù)都會被轉成補碼形式的有符號整數(shù)

總結

以上是生活随笔為你收集整理的计算机中符号位正负,负数在计算机中的表示+有符号无符号的区别+负数按位运算...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。