[問題] 請問字串大小

看板java作者 (粉紅色的皮爺)時間13年前 (2012/10/05 09:41), 編輯推噓4(4011)
留言15則, 5人參與, 最新討論串1/1
大家安安 我在書上讀到一條題目 「同一個串在 C 中會佔用 JAVA 約一半的記憶體空間」 這個答案是 false 可是書上前面又說 JAVA 使用 Unicode 來表示符號@@ Unicode 尺寸不是 ASCII 的兩倍嗎? 請問我誤會了什麼呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.232.67

10/05 09:47, , 1F
我直覺上也覺得是這樣,還是說c中的字串也是unicode?
10/05 09:47, 1F

10/05 09:56, , 2F
C預設應該是ASCII 應該XD
10/05 09:56, 2F
我找到答案了 但不確定我的理解是不是正確 因為指令叢集使用的字組( word )大小是固定的 所以不論是 C 使用 ASCII 編碼,或 JAVA 使用 Unicode 都會佔去固定記憶體空間( 32 或 64 位元)

10/05 11:33, , 3F
囧... 那處理中文字咧... 這比較基礎好怪異 XD
10/05 11:33, 3F

10/05 11:35, , 4F
我不知道@@ 中文字有什麼問題嗎?
10/05 11:35, 4F
第二道問題 哪一種可容納1,000,000,000(十進制)的變數型態佔用最多記憶體空間 1. C 中的 int 2. C 中的 String 3. Java 中的 String 這個題目講的容納,應該是把數字當成字串來存的意思 就是 "1000000000" 這樣 1 肯定最小 問題在於 2 跟 3,為什麼 3 最大呢? 3 比 2 多出什麼@@?

10/05 12:44, , 5F
什麼書那麼多詭異的問題。
10/05 12:44, 5F

10/05 13:25, , 6F

10/05 13:42, , 7F
第一題跟第二題是一樣的吧?
10/05 13:42, 7F

10/05 14:01, , 8F
蛤一樣嗎@@!? 能不能詳細一點解釋 我很弱 囧
10/05 14:01, 8F

10/05 14:36, , 9F
第一題...看C用啥編碼而定,所以是錯
10/05 14:36, 9F

10/05 14:37, , 10F
第二題,Java是用UTF-16,所以會比C string大(如果是ASCII
10/05 14:37, 10F

10/05 14:43, , 11F
要分清楚Unicode跟encoding implementing Unicode是不同的
10/05 14:43, 11F
感謝! 第一題我一開始認為是編碼的緣故 但在書上看到這一段 整段節錄給大家看一下 「MIPS 軟體會嚐試將堆疊對齊在字組位址上,以便程式可以單單使用 lw 和 sw (兩 者均對齊字組位址)來存取堆疊。這種慣例表示一個配置在堆疊上的字母符號即使 不需要也會佔用掉 4 個位元組。然而 C 的串變數或位元組的數列會將 4 個位元 組組成一個字組,而 Java 的短整數型態 ( short ) 的串變數或數列會將兩個半 字組組成一個字組。 」 我看完之後作了上面寫到的那些理解 請問我誤會了什麼嗎? ( 錯很大的話請不要笑我..Orz ) ※ 編輯: p52189 來自: 114.42.232.67 (10/05 15:22)

10/05 16:30, , 12F
串變數 <- 這到底是三小,怎麼看都不是字串。
10/05 16:30, 12F

10/05 16:34, , 13F
我照抄的 書上就這樣寫 囧
10/05 16:34, 13F

10/05 16:37, , 14F
那是大陸翻譯還是純粹漏字?
10/05 16:37, 14F

10/05 18:31, , 15F
是字串無誤 我去徵到原文了XD
10/05 18:31, 15F
文章代碼(AID): #1GRZh3bh (java)