看一個C語言的筆試題,題目很簡單,問char是有符號類型還是無符號類型?
看到這個題目的時候,我毫不猶豫的選擇了一個錯誤答案。
在大部分人的認知中,C語言數(shù)據(jù)類型前面的signed是可以省略的,比如:
int a;其實等價于:
signed int a;也就是 a 表示有符號整型。 如果想要定義無符號整型,可以寫成:
unsigned int a;前面的 unsigned 不能省略。
但是 char 類型卻除外。
寫個代碼測試一下,有符號 char 表示范圍 -128 - 127,無符號 char 表示范圍 0 - 255。
我們只要定義一個 char 類型等于 127,讓他加一后,看結果大于 0 還是小于 0 就行。
先用 Ubuntu 里面的 gcc 來編譯,結果是有符號數(shù)。
換成 arm-linux-gcc,在ARM架構的開發(fā)板上運行,結果是無符號數(shù)。
最后再來看下C標準,他把這種行為稱為:
implementation defined就是讓編譯器自己去決定,所以不同的環(huán)境下面,char表示的確實不一樣。
如果考慮到移植,一定要謹慎使用。
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7581瀏覽量
135539 -
ARM架構
+關注
關注
14文章
176瀏覽量
36227 -
char
+關注
關注
0文章
11瀏覽量
3698 -
gcc編譯器
+關注
關注
0文章
78瀏覽量
3332
原文標題:char屬于有符號還是無符號
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
關于verilog中的無符號數(shù)和有符號數(shù)
在數(shù)字電路中,出于應用的需要,我們可以使用無符號數(shù),即包括0及整數(shù)的集合;也可以使用有符號數(shù),即包括0和正負數(shù)的集合。在更加復雜的系統(tǒng)中,也許這兩種
跟著狄泰唐老師學C語言進階教程的筆記之有符號與無符號
——> MIN_VALUEB. MIN_VALUE-1 ——> MAX_VALUE4. signed和unsignedl C語言中變量默認為有符號的類型l unsigned 關鍵字聲明為無
發(fā)表于 05-16 21:43
DSP指令——有符號32位飽和為無符號8位
hi,everyone:
我做優(yōu)化時候,需要將一個有符號的32位 ?int 類型的數(shù),做一個飽和操作,變成一個
無符號的8位的數(shù)。具體代碼如
發(fā)表于 06-21 02:36
無符號類型與整數(shù)文字不匹配
什么嗎? case和if / elsif之間有區(qū)別嗎?signal rx_count:unsigned(15 downto 0);case rx_count是當15 =>- 這就產(chǎn)生了“無符號
發(fā)表于 03-05 12:53
雙狀態(tài)無符號/有符號數(shù)據(jù)類型
雙狀態(tài)無符號數(shù)據(jù)類型雙狀態(tài)有符號數(shù)據(jù)類型四狀態(tài)數(shù)據(jù)類型
發(fā)表于 01-18 06:03
C語言單片機編程為什么總是用無符號的數(shù)據(jù)類型來定義
注意:答案和題目均轉自百度知道char型可以表示數(shù)的范圍是-128到127,所占位數(shù)是8位int型可以表示數(shù)的范圍是-32768到32767,所占位數(shù)是16位假如用有符號的數(shù)據(jù)類型表示
發(fā)表于 07-01 08:07
SpinalHDL的UInt與SInt數(shù)據(jù)類型能夠進行有符號/無符號數(shù)操作
在Bits的基礎上,SpinalHDL提供了UInt、SInt數(shù)據(jù)類型,從而能夠進行有符號/無符號數(shù)操作。變量定義/初始化UInt/SInt
發(fā)表于 07-14 14:45
高效的C編程之變量類型
14.2 C編譯器數(shù)據(jù)類型映射 C數(shù)據(jù)類型表示的意義 char無符號8位字節(jié)數(shù)據(jù) short有
發(fā)表于 10-17 16:50
?3次下載
plc位、字節(jié)、字、雙字、有符號、無符號數(shù)據(jù)類型的關系
plc位、字節(jié)、字、雙字、有符號、無符號的關系以下內容由深圳市綜科智控科技開發(fā)有限公司編輯整理 2021/08/18前言:很多同學在PLC開發(fā)過程中,因為數(shù)據(jù)
發(fā)表于 12-29 18:52
?2次下載
匯編基礎知識教程之數(shù)據(jù)類型與寄存器
數(shù)據(jù)類型
這是 ARM 匯編基礎知識系列教程的第二部分,涉及數(shù)據(jù)類型和寄存器。
與高級語言類似,ARM支持對不同數(shù)據(jù)類型的操作。我們可以加載(或存儲)的數(shù)據(jù)類型可以是
verilog中數(shù)據(jù)的符號屬性(有符號數(shù)和無符號數(shù))探究根源
為了省流,還是先甩結論。有符號數(shù)和無符號數(shù)的最本質區(qū)別就是:符號位的識別和高位拓展。除此之外,另
評論