看板 CSSE 關於我們 聯絡資訊
※ 引述《sean72 (.)》之銘言: : 小弟最近有一次面試 : 裡面問了幾個名詞 : 由於我不是資訊工程背景出身 關於Computer Architecture的內容都是自修的 : 底子沒有很紮實 : 不過有幾個問題我不知道該如何找答案 : 另外由於這個面試的職位是韌體工程師 用C寫16位元系統的處理器 : 希望板上的高手能從這方面下手 指點迷津 : 下面有A. B. 兩大題 恕刪 : ===== : B. : What are the max values that can be represented in the following data : types on a 16-bits CPU? : i. BYTE : ii. WORD : iii. int : iv. unsigned int : v. long : vi. unsigned long 題目問的是 max value 以一個16位元的CPU來看, BYTE依然是8個bits, 最大是2^8-1 一個word就是16bits, 最大值是2^16-1 int定義成16bits的話, 扣掉一個sign bit, 最大是2^15-1 unsigned int就是2^16-1 long跟unsigned long大概要用2個int來組成, 就會變成 2^31-1 與 2^32-1 : 16位元處理器代表他register一次存取大小為 16 bits : 所以 : i Byte: 2 <--對嗎? 對吧? : ii Word: 不知道 : iii int : (2^15)-1 (一個bit拿去表示正負) : iv unsigned int: (2^16)-1 : v long: 不知道 : vi unsigned long: 不知道 : 在32位元系統中 我查到 : word大小取決於系統 例如32位元系統word大小為4byte : short是半個word, 2 byte : int一個word, 4 byte : long可能是一個word或是兩個word (為什麼網路上說 "可能是""或是"?) : 以下為我自己的疑惑: : 請問這該怎麼推算到其他例如 8位元 或是64位元系統呢? : 如果我的CPU是32位元 我卻安裝了一個16位元的DOS又會怎樣? : 這跟compiler 抓取資料的長度有關嗎? : 所以16bit CPU一般的compiler都設定成2 byte為一個單位來存取資料嗎? : 非常非常感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.124.164.176