? 今天又是早起的一天师逸。
上午:
開始讀單詞
學(xué)習(xí)內(nèi)容:
# 第二天
## 1. 常量
### 1.1常量概念
程序運(yùn)行時(shí)窄坦,其不能改變的量拍顷,即為常量
### 1.2 常量分類
* 字面常量(直接量常量)验夯,如23,13魁蒜;
* 標(biāo)識符常量(C99標(biāo)準(zhǔn)后增加)
### 1.3標(biāo)識符常量的定義方式
* ①宏定義: #define 常量名 常量值
~~~c
//如下
#define MAX 100
~~~
* ②const 關(guān)鍵字: const? 常量名 常量值
~~~
//如下
const int MIN = 10;
int const DAY = 515;
~~~
### 1.4 兩種方式的區(qū)別
* ①類型檢查 :宏定義不會類型檢查操刀,const關(guān)鍵字在編譯的時(shí)候進(jìn)行文本檢查
* ② 執(zhí)行時(shí)間:宏定義在預(yù)處理階段進(jìn)行文本替換烁挟,即將程序中的常量名換成常量值。const關(guān)鍵字定義的常量在執(zhí)行階段被創(chuàng)建并進(jìn)入內(nèi)存
## 2.二進(jìn)制
### 2.1 進(jìn)制
#### ①常見進(jìn)制
* 二進(jìn)制
* 八進(jìn)制(不常見)
* 十進(jìn)制
* 十六進(jìn)制
#### ② 不同進(jìn)制表示的字面常量整數(shù)
* 十進(jìn)制字面量:默認(rèn)
* 二進(jìn)制字面量:0b開頭
* 十六進(jìn)制字面量:0x
### 2.2 進(jìn)制轉(zhuǎn)換
#### ①二進(jìn)制和十進(jìn)制
##### 2的次方數(shù)(重要骨坑,必背)
~~~
2^1 = 1
2^2 = 2
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024
~~~
##### 二進(jìn)制轉(zhuǎn)十進(jìn)制
~~~
標(biāo)準(zhǔn)規(guī)則: 從最低位開始撼嗓,將每個(gè)位上的數(shù)提取出來,乘以2的(位數(shù)-1)次方欢唾,然后求和且警。
8421規(guī)則:只考慮1忽略0,1后面幾個(gè)數(shù)就對應(yīng)2的幾次方
如: 1011 = 2^3+0x2^2+1x2^1+1x2^0=11
~~~
##### 十進(jìn)制轉(zhuǎn)二進(jìn)制
~~~
標(biāo)準(zhǔn)規(guī)則:將該數(shù)不斷除以2礁遣,直到商為0為止斑芜,然后將每步得到的余數(shù)倒過來,就是對應(yīng)的二進(jìn)制祟霍。
8421技巧:使用2的次方數(shù)去湊
如: 11 = 2^3+0x2^2+1x2^1+1x2^0=1011
~~~
#### ②十六進(jìn)制轉(zhuǎn)十進(jìn)制(了解)
##### 十六進(jìn)制轉(zhuǎn)十進(jìn)制
~~~
規(guī)則:從最低位開始杏头,將每個(gè)位上的數(shù)提取出來,乘以16的(位數(shù)-1)次方沸呐,然后求和醇王。
~~~
##### 十進(jìn)制轉(zhuǎn)換為十六進(jìn)制
~~~
規(guī)則:將該數(shù)不斷除以16,直到商為0為止崭添,然后將每步得到的余數(shù)倒過來厦画,就是對應(yīng)的十六進(jìn)制。
~~~
### 2.3 源碼、反碼根暑、補(bǔ)碼
~~~
正數(shù)和0: 原碼力试、反碼、補(bǔ)碼都相同
負(fù)數(shù): 原碼:對應(yīng)的二進(jìn)制數(shù)排嫌,符號位是1
? 反碼:原碼基礎(chǔ)上畸裳,符號位不變,其他位取反
? 補(bǔ)碼:反碼基礎(chǔ)上加1
~~~
[補(bǔ)碼計(jì)算器:](https://www.lddgo.net/convert/number-binary-code)
## 3.數(shù)據(jù)類型
> **比特:** bit淳地,簡稱b怖糊,計(jì)算機(jī)中最小存儲單位,表示一個(gè)二進(jìn)制位颇象。
>
> **字節(jié):** byte伍伤,簡稱B,計(jì)算機(jī)種基本存儲單位遣钳,8個(gè)比特表示一個(gè)字節(jié)扰魂。
#### 3.1整數(shù)的劃分
##### ①整形劃分
####
| 類型? ? ? ? ? ? ? ? ? | 類型簡寫? ? ? ? ? | 說明? ? ? ? ? | 存儲大小 |
| ---------------------- | ------------------ | -------------- | -------- |
| signed int? ? ? ? ? ? | int、signed? ? ? ? | 有符號整型? ? | 4字節(jié)? ? |
| unsigned int? ? ? ? ? | unsigned? ? ? ? ? | 無符號整型? ? | 4字節(jié)? ? |
| signed short int? ? ? | short? ? ? ? ? ? ? | 有符號短整型? | 2字節(jié)? ? |
| unsigned short int? ? | unsigned short? ? | 無符號短整型? | 2字節(jié)? ? |
| signed long int? ? ? ? | long? ? ? ? ? ? ? | 有符號長整型? | 4或8字節(jié) |
| unsigned long int? ? ? | unsigned long? ? ? | 無符號長整型? | 4或8字節(jié) |
| signed long long int? | long long? ? ? ? ? | 有符號長長整型 | 8字節(jié)? ? |
| unsigned long long int | unsigned long long | 無符號長長整型 | 8字節(jié)? ? |
> **總結(jié):**
>
> ① 整型分為四種:int蕴茴、short劝评、long、long long倦淀; 每一種分為 signed和unsigned兩種蒋畜。
>
> ② 需要表示整數(shù)的時(shí)候首選 int 類型,如果超出范圍撞叽,再使用 long 或 long long姻成。
>
> ③ long long 類型為 C99 標(biāo)準(zhǔn)增加。
##### ②字面量后綴(不需要記)
| 數(shù)據(jù)類型? | 字面量后綴 | 數(shù)據(jù)類型? ? ? ? ? | 字面量后綴 |
| --------- | ---------- | ------------------ | ---------- |
| int? ? ? | 不需要? ? | unsigned int? ? ? | U? ? ? ? ? |
| long? ? ? | L? ? ? ? ? | unsigned long? ? ? | UL? ? ? ? |
| long long | LL? ? ? ? | unsigned long long | ULL? ? ? ? |
> **注意:**
>
> ① L 和 U 的可以任意組合愿棋,UL 等價(jià)于LU科展,ULL等價(jià)于LLU
>
> ② 字面量后綴不區(qū)分大小寫,l 等同于 L
##### ③ 格式占位符
| 數(shù)據(jù)類型? | 格式占位符 | 數(shù)據(jù)類型? ? ? ? ? | 格式占位符 |
| --------- | ---------- | ------------------ | ---------- |
| int? ? ? | %d? ? ? ? | unsigned int? ? ? | %u? ? ? ? |
| short? ? | %hd? ? ? ? | unsigned short? ? | %hu? ? ? ? |
| long? ? ? | %ld? ? ? ? | unsigned long? ? ? | %lu? ? ? ? |
| long long | %lld? ? ? | unsigned long long | %llu? ? ? |
##### ④ 等寬整數(shù)類型
定義在標(biāo)準(zhǔn)庫頭文件 `<stdint.h>` 中:
```
int8_t
int16_t
int32_t
int64_t
uint8_t
uint16_t
uint32_t
uint64_t
```
注意: 使用庫文件定義整形所占位數(shù)時(shí)初斑,移植程序時(shí),自動匹配該操作系統(tǒng)中對應(yīng)位數(shù)的整數(shù)類型
#### 3.浮點(diǎn)類型
##### ①浮點(diǎn)類型劃分
| 數(shù)據(jù)類型? ? | 說明? ? ? ? ? ? | 存儲長度? ? ? | 有效小數(shù)位數(shù) |
| ----------- | ---------------- | -------------- | ------------ |
| float? ? ? | 單精度浮點(diǎn)類型? | 4字節(jié)? ? ? ? ? | 6~9? ? ? ? ? |
| double? ? ? | 雙精度浮點(diǎn)類型? | 8字節(jié)? ? ? ? ? | 15~18? ? ? ? |
| long double | 長雙精度浮點(diǎn)類型 | 10字節(jié)或16字節(jié) | 18以上? ? ? |
> **總結(jié):**
>
> ① 首選類型是 double膨处,如果需要更高的精度可以使用 long double
>
> ② 浮點(diǎn)的直接量表示可以寫十進(jìn)制小數(shù)见秤,如`2.45`、`0.89`真椿;也可以寫科學(xué)計(jì)數(shù)法鹃答,如 `8.9E4`、`7.8976e3`突硝。
>
> ③ long double 類型 為 C99 標(biāo)準(zhǔn)增加测摔。
>
#####? ②字面量后綴(不需要記)
| 類型? ? ? ? | 字面量后綴 |
| ----------- | ---------- |
| float? ? ? | F、f? ? ? |
| double? ? ? | 不需要? ? |
| long double | L、l? ? ? |
> **注意:**字面量后綴不區(qū)分大小寫
##### ③格式站位符
> | 數(shù)據(jù)類型? ? | 十進(jìn)制小數(shù)形式對應(yīng)的占位符 | 科學(xué)計(jì)數(shù)法形式對應(yīng)的占位符 |
> | ----------- | -------------------------- | -------------------------- |
> | float? ? ? | %f? ? ? ? ? ? ? ? ? ? ? ? | %e? ? ? ? ? ? ? ? ? ? ? ? |
> | double? ? ? | %lf锋八、%f? ? ? ? ? ? ? ? ? ? | %le? ? ? ? ? ? ? ? ? ? ? ? |
> | long double | %Lf? ? ? ? ? ? ? ? ? ? ? ? | %Le? ? ? ? ? ? ? ? ? ? ? ? |
>
> > **注意:**
> >
> > 輸出double類型數(shù)據(jù)浙于,可以使用 %f 或 %lf; scanf()獲取double類型數(shù)據(jù)挟纱,只能使用 %lf羞酗。
##### ④浮點(diǎn)類型存儲原理
~~~
4.5 * 10^3
4.5 是位數(shù)
10 是基數(shù)
3 是指數(shù)
~~~
存儲方式:浮點(diǎn)數(shù)分為符號位、指數(shù)部分紊服、尾數(shù)部分三部分存儲
作業(yè):
1. 以下二進(jìn)制表示的數(shù)字轉(zhuǎn)為十進(jìn)制
100101
1011001
11001
1000110
11110
100000101
110010011
111000001
2. 以下十進(jìn)制數(shù)字轉(zhuǎn)為二進(jìn)制數(shù)字
89
65
130
27
72
110
53
223
3. 以下二進(jìn)制數(shù)字轉(zhuǎn)為十六進(jìn)制數(shù)字
? 10010100
? 10110010
? 11001101
? 10100110
? 10111110
? 1011001
? 1100110010
? 11000010010
4. 以下十六進(jìn)制數(shù)字轉(zhuǎn)為二進(jìn)制數(shù)字
? AD
? F29
? 9D
? 160
? DDD
? F1
? 6D
? 19
5. 計(jì)算以下數(shù)字的原碼檀轨、反碼、補(bǔ)碼(使用8個(gè)二進(jìn)制位表示)
100
-89
-2
-128
127
-10
0
-100
6. 定義一個(gè)有符號整數(shù)變量欺嗤,賦值一個(gè)負(fù)數(shù)参萄,使用 %d 和 %u 分別輸出會得到什么結(jié)果
%d 直接輸出負(fù)數(shù)
%u 即unsigned int,其中int為四字節(jié)煎饼,即32位讹挎,將負(fù)數(shù)轉(zhuǎn)化為32位的二進(jìn)制數(shù),再轉(zhuǎn)為十進(jìn)制數(shù)字
遇到的問題解析:負(fù)數(shù)轉(zhuǎn)碼時(shí)沒有補(bǔ)全八個(gè)位腺占,%u輸出時(shí)淤袜,可將負(fù)數(shù)轉(zhuǎn)碼為補(bǔ)碼,然后把符號位1衰伯,當(dāng)成二進(jìn)制位數(shù)铡羡,轉(zhuǎn)化為十進(jìn)制數(shù)
簡書一天只能發(fā)兩篇文章,頭圖