[問題] 字元陣列給值

看板C_and_CPP (C/C++)作者 (kerker☯)時間14年前 (2012/01/02 01:53), 編輯推噓5(5016)
留言21則, 8人參與, 最新討論串1/1
開發平台(Platform): Unix 額外使用到的函數庫(Library Used): none 問題(Question): 給字元陣列某個元素賦予數值 請問裡面存的東西是以補數的形式放入嗎? 餵入的資料(Input):{1, 127, 128, 1023} 預期的正確結果(Expected Output):none 結果(Output):{1, 127, -128, overflow in implicit constant conversion} 程式碼(Code):(請善用置底文網頁, 記得排版) char test[1]; test[0]=input; //input={1, 127, 128, 1023} 補充說明(Supplement): 直接以字元元素指定數字,printf要用%d才會有結果 可能是很基本的觀念,不好意思,想跟大家確認一下這個猜測是否正確,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.63.198

01/02 02:33, , 1F
這跟把五十億放進 32-bit 的 int 一樣囧...
01/02 02:33, 1F

01/02 07:50, , 2F
原po知道char的長度是多少,它能容納多大的數字嗎?
01/02 07:50, 2F

01/02 09:42, , 3F
我只知道char是1byte 不過因為以前只存過字串字元
01/02 09:42, 3F

01/02 09:43, , 4F
所以不太確定 也就是說字元陣列也可以直接給數字嗎?
01/02 09:43, 4F

01/02 10:23, , 5F
char內存值本來就是用數字了是用ascii
01/02 10:23, 5F

01/02 10:23, , 6F

01/02 11:16, , 7F
謝謝!!
01/02 11:16, 7F

01/02 14:29, , 8F
diabloevagto: 不是,不一定是 ASCII...
01/02 14:29, 8F

01/02 14:30, , 9F
zelkova:那是因為目前大部分機器用的編碼跟 ASCII "相容"
01/02 14:30, 9F

01/02 18:14, , 10F
f大的意思是這個嗎?http://ppt.cc/~a6P
01/02 18:14, 10F

01/03 02:14, , 11F
zelkova,javes732: 忘記說在 C 的世界裡面 1byte != 8bits
01/03 02:14, 11F

01/03 02:14, , 12F
james732
01/03 02:14, 12F

01/03 02:15, , 13F
嗯算類似吧 orz 總之有反例就是了...
01/03 02:15, 13F

01/03 10:42, , 14F
1byte != 8bits??why?
01/03 10:42, 14F

01/03 10:57, , 15F
F大是想說1 char不一定等於1 byte (8bit)吧?
01/03 10:57, 15F

01/03 10:58, , 16F
小弟以為 1 byte = 8 bits 應該是固定的啊@_@"
01/03 10:58, 16F

01/03 11:58, , 17F
事實上是不一定, 例如有些DSP好像就是16 bits
01/03 11:58, 17F

01/03 12:00, , 18F
可以使用CHAR_BIT查看 (include from limits.h)
01/03 12:00, 18F

01/03 12:00, , 19F
另外1 char應該是一定等於1 byte的 (只是不一定是8bits
01/03 12:00, 19F

01/03 14:49, , 20F
char一定等於byte (in bits),標準只保證CHAR_BIT >= 8bits
01/03 14:49, 20F

01/04 02:47, , 21F
原來如此, 小弟我又記錯了....Orz
01/04 02:47, 21F
文章代碼(AID): #1F09slD2 (C_and_CPP)
文章代碼(AID): #1F09slD2 (C_and_CPP)