數據類型的最高位用于標識數據的符號
最高位為1,表明這個數為負數
最高位為0,表明這個數為正數
下面看一段代碼,用于判斷數據的符號:
#include<stdio.h>intmain(){charc=-5;shorts=6;inti=-7;printf("%d\n",((c&0x80)!=0));printf("%d\n",((s&0x8000)!=0));printf("%d\n",((i&0x80000000)!=0));return0;}
下面為輸出結果:
這段代碼核心思想就是判斷最高位為是不是 1,再做邏輯運算,如果為 1,那么運算后就是 1,否則就是 0 。
在計算機內部用補碼表示有符號數
正數的補碼為正數本身
負數的補碼為負數的絕對值各位取反后加1
如:
8位整數 5 的補碼為:0000 0101
8位整數 -7 的補碼為:11111001
16位整數 20 的補碼為:0000 0000 0001 0100
16位整數- 13 的補碼為:1111 1111 1111 0011
在計算機內部用原碼表示無符號數
無符號數默認為正數
無符號數沒有符號位
對于固定長度的無符號數
MAX_VALUE(所能表示的最大值)+ 1 --> MIN_VALUE(所能表示的最小值)
MIN_VALUE - 1 --> MAX_VALUE
C 語言中變量默認為有符號的類型
unsigned 關鍵字聲明變量為無符號類型
注意:C語言中只有整數類型能夠聲明 unsigned 變量
下面看一段無符號數碰上有符號數的代碼:
#include<stdio.h>intmain(){unsignedinti=5;intj=-10;if((i+j)>0){printf("i+j>0\n");}else{printf("i+j<=0\n");}return0;}
下面為輸出結果:
i 為 5,j 為 -10,按理說兩者相加應該輸出為 i + j < 0,為什么會大于 0 呢?這是因為當無符號數與有符號數混合計算時,會將有符號數轉換為無符號數后再進行計算,結果為無符號數。
再來看一個錯誤使用 unsigned 的例子:
#include<stdio.h>intmain(){unsignedinti=0;for(i=9;i>=0;i--){printf("i=%u\n",i);}return0;}
下面為部分輸出結果:
這是由于 i 為 unsigned 類型,減到 0 后,再減1,就變成了最大值,所以程序就會這樣輸出。
讀到這里,這篇“C語言有符號數與無符號數怎么表示”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
鉛筆,日常生活中最常見的文具之一。許多人用鉛筆學習寫字。但是,很多人不知道,鉛筆雖然含有“鉛”字,但是和鉛一點關系都沒有。1564年,一個英國牧羊人偶然發現了黑色礦物——石墨,這是鉛筆鉛的主要原料。這種神奇的物質顯色性很高,可以作為羊身上的標記。不久后,商人發現了商機,將石墨切成條狀出售,這樣人們就可以在籃子和容器上做標記。但是石墨的脆性和臟手也讓人苦惱。1761年,德國化學家費伯在石墨中加入硫磺...
美國次貸危機(subprime crisis)也稱次級房貸危機,也譯為次債危機。它是指一場發生在美國,因次級抵押貸款機構破產、投資基金被迫關閉、股市劇烈震蕩引起的金融風暴。那么,美國次貸危機爆發的主要原因是什么?美國次貸危機如何解決的?一起來看看吧!美國次貸危機爆發的主要原因有:1.美國金融監管當局,特別是美聯儲貨幣政策的松緊變化。2.美國投資市場,以及全球經濟和投資環境一段時期內,情緒樂觀、持續...
(資料圖片僅供參考)隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如2021快遞停運日期 2021年春節快遞物流停運時間表,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!2021快遞停運日期除了各大物流公司之外,近日,網傳順豐、申通、德邦、天天等快遞公司放假時間也已發布,大概時間在2021年2月11日-2021年2月18日左右。1、順豐快遞從臘月二十七就開...