1. 馮諾依曼體系結構
2. 如何理解記憶體
乙個大走廊 每個房間1位元組
房間門牌號》「位址」
3. 記憶體和外存
(1) 記憶體支援隨機訪問能力,訪問某個位址的開銷差不多
外存也支援隨機訪問能力,但程度不如記憶體,訪問開銷比順序訪問開銷大
(2) 記憶體儲存空間小
外存儲存空間大
(3) 記憶體訪問速度快 (記憶體快3--4個數量級,幾千倍)
外存訪問速度慢
(4) 記憶體成本高
外存成本低
(5) 掉電時, 記憶體資料丟失, 外存資料還在
4. c語言中變數型別
(1) 整數型別(char, int, short, long, long long,...)
(2) 浮點數型別(float, double)
(3) 指標型別(char*, int*)
(4)結構體
如何通過除錯檢視記憶體
位元組序:
(小端位元組序) 數字的低位存到記憶體的低位址上
(大端位元組序) 數字的低位存到記憶體的高位址上 (和數學上的方式一致)
如何判斷是大端還是小端位元組序?
檢視這個整數的最低位址的乙個位元組,小端返回1, 大端返回0.
int islittleend()
return 0;
}
int* p = &num 此處的 * 和int是乙個整體, 組成(int*) 型別
printf("%d", *p) 此處的 * 是解引用操作, 根據指標變數中儲存的位址找到對應的記憶體中的值.
關於負整數在記憶體中的儲存: 符號位
int 既能表示正數也能表示負數, 最高位是符號位 ( 0表示正數, 1表示負數)
unsigned int 只能表示正數
計算機中儲存方式為補碼 (讓硬體實現更簡單)
原碼符號位不變, 取反+1 得到補碼
補碼符號位不變, 取反+1 得到原碼
%d: 列印乙個有符號十進位制的整數.
char 是乙個位元組得變數, 當按照 %d 列印時, 就會把 char 隱式轉換為 int 型別的變數, 然後再列印.
%u: 列印乙個無符號的十進位制整數.
%f: 列印 float 和 double 型別的資料
%p: 列印指標變數(列印的是乙個位址)
unsigned 型別的變數盡量不要用! 容易出現問題, 尤其是不同型別轉換時.
型別轉換 char => int => unsigned int
高位填充符號位
JAVA語言基礎複習1
物件導向 一.什麼是類?類就是有 相同屬性和方法 的一組物件的集合 二.什麼是物件?物件就是 用來描述客觀事物的乙個 實體,由一組 屬性和方法構成 三.方法和屬性是什麼?方法就是物件執行的 操作屬性就是物件的 特徵四.什麼是方法過載?方法的過載就是方法名一樣,引數列表不一樣 public class...
C語言基礎複習1
不改變其他位的值的狀況下,對某幾個位進行設值。這個場景微控制器開發中經常使用,方法就是先對需要設定的位用 操作符進行清零操作,然 後用 操作符設值。比如我要改變 gpioa odr 的狀態,可以先對暫存器的值進行 清零操作 gpioa odr 0xff0f 將第 4 7 位清 0 然後再與需要設定的...
複習基礎知識1
1,classloader 基本概念 2 unicode 3static,其中味靜態 塊為區域性變數 4 j j 無論加多少次,j的值都是不變的 temp j j j 1 j temp 5 j j j j 6 length用法 char c 13c short byte char int long ...