# 資訊概論
###### tags: `CS` `Comparison`
## APCS 2017
* rand%(max(不含max)-min)+min
* 程式執行時,Variable存在**記憶體**
* **異位**發生原因:**以有限位元儲存無限小數** ex:0.33333
* 後序運算子:讀取到運算子就放**把前面的數字及當前運算子丟入stack**
## Memory
| | RAM (Random Acess Memory , 隨機存取記憶體) | ROM ( 唯讀記憶體 , Read Only Memory ) |
| -------- | -------- | -------- |
| 特性 | 可讀可寫| 只可讀不可寫 |
|memory隨電源消失|Y|N|
|被存取者|存OS,使用者的正在執行的應用程式及資料|存I/O System |
|主流|DRAM(Dynamic RAM , 動態RAM) :速度慢、耗電低、需時時更新資料|EEPROM (Electronic EPROM) :電子式可清除之PROM(可重複讀寫)|
|容量|**BIGGER**|smaller|
|應用|Cache:大都用 SRAM 作成,快速暫存主記憶體中小部分資料以加速CPU的存取。||
## 光學辦識器
* Optical Character Recognition , OCR)
* 文字影像檔掃瞄後轉成文字資料檔。
## 解析度 (Resolution) :
* Dot Per Inch , DPI
* 150 x 150 , 300 x 300 , 600 x 600 , 720 x 720
## 色彩值
* 256色(8 Bits=1Bytes)
* 65536色(16Bits=2Bytes)
* 1.67M色(True Color,全彩,24Bits=3Bytes)
### Q
>[color=#FF1C42]***有一 2.54 cm x 5.08 cm 之圖形,用 300 DPI 的掃瞄器、全彩掃入電腦後存檔,
請問此圖檔大小為多少Bytes?***
### A
>[color=#4369FF]此圖檔共有 **(2.54 / 2.54 x 300) x (5.08 / 2.54 x 300) = 180000個圖點。**
因**全彩 , 每一點需3Bytes , 所以共需 3 x 180000=540000 Bytes。(約=527KB)**
## OS
1. 單人單工系統: 如 DOS (文字界面)。
2. 單人多工系統: 如 Windows 31/95系列、OS/2 (圖形界面)。
3. 多人多工系統: 如 UNIX (文字界面)....等
### 語言處理程式 (Language Processor)
* 處理(翻譯)使用者所寫的語言。
### 工具程式 (Utility)
* 載入程式 (Loader):當程式要被執行時,用來將程式由輔助記憶體載入至主記憶體中。
* 連結程式 (Linker):用來將目的檔(Object File)連結成可執行檔(Execution File)
## 高階語言
>[color=#2FEEE2]用類似人類語法的文字來寫。 (最能被人類理解與接受)
1. BASIC:教學用通用性語言 , 直譯式、編譯式
2. COBOL:商業性語言 , 編譯式
3. FORTRAN:工程及科學用語言 , 編譯式
4. PASCAL:教學用,一般性語言 , 具結構化,編譯式
5. C:相容性高之一般性語言 , 編譯式
常用來發展作業系統等系統程式,如 Unix
6. C++:將C加以物件導向的語法的程式語言。
7. Java:由 C++改進而來,提供了相當多的網路功能,
是網際網路興起後相常風行的語言。
高階語言 ---> 機器語言程式 (Necessary)
1. 💩直譯 (Interpret) command line
2. ❤編譯程式 (Compile) Source code--->.exe

## 進位制轉換
### 2 進位 => 8 進位
```java
if 不足3位:
整數 => 前補0 , 小數 => 後補0
else
3 位一數
```
### 16 進位 => 2 進位
```1 位化 4 位```
### 10進制 => N 進制
* 整數用除的,除N,(由下往上)看餘數
* 小數用乘的,乘N,(由上往下)看整數

#### Q
>[color=#FF1C42]9.625(10) = ________(2) ( N=2 )
### A
>[color=#4369FF]9.625(10) = 1001.101(2)
>
## 二補數
>[color=#EEEC01]二補數常用來表示有號數,第一個位元用來記錄正負號(正號表示成 0、負號表示成 1)
>[color=#EECC03]負數的二補數則是將其對應正數按位元取反再加1
>