C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第三版)第12章-位運(yùn)算

上傳人:za****8 文檔編號(hào):23457618 上傳時(shí)間:2021-06-08 格式:PPT 頁(yè)數(shù):33 大?。?56KB
收藏 版權(quán)申訴 舉報(bào) 下載
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第三版)第12章-位運(yùn)算_第1頁(yè)
第1頁(yè) / 共33頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第三版)第12章-位運(yùn)算_第2頁(yè)
第2頁(yè) / 共33頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第三版)第12章-位運(yùn)算_第3頁(yè)
第3頁(yè) / 共33頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第三版)第12章-位運(yùn)算》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第三版)第12章-位運(yùn)算(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第 十 二 章 l 主 要 內(nèi) 容12.1位 運(yùn) 算 符 和 位 運(yùn)算12.2位 運(yùn) 算 舉 例12.3位 段 概 念 l 位 運(yùn) 算 是 指 按 二 進(jìn) 制 位 進(jìn) 行 的 運(yùn) 算 。 因 為 在 系 統(tǒng)軟 件 中 , 常 要 處 理 二 進(jìn) 制 位 的 問(wèn) 題 。l 例 如 : 將 一 個(gè) 存 儲(chǔ) 單 元 中 的 各 二 進(jìn) 制 位 左 移 或 右移 一 位 , 兩 個(gè) 數(shù) 按 位 相 加 等 。l 語(yǔ) 言 提 供 位 運(yùn) 算 的 功 能 , 與 其 他 高 級(jí) 語(yǔ) 言 ( 如PASCAL) 相 比 , 具 有 很 大 的 優(yōu) 越 性 。 4 12.1 位 運(yùn) 算 符 和 位 運(yùn) 算運(yùn) 算

2、 符 含 義 運(yùn) 算 符 含義 按 位 與 取反 | 按 位 或 右移(1)位 運(yùn) 算 符 中 除 以 外 , 均 為 二 目 ( 元 ) 運(yùn) 算 符, 即 要 求 兩 側(cè) 各 有 一 個(gè) 運(yùn) 算 量 。(2)運(yùn) 算 量 只 能 是 整 型 或 字 符 型 的 數(shù) 據(jù) , 不 能 為 實(shí)型 數(shù) 據(jù) 。 語(yǔ) 言 提 供 的 位 運(yùn) 算 符 有 : 5 12.1.1“ 按 位 與 ” 運(yùn) 算 符 ( )按 位 與 是 指 : 參 加 運(yùn) 算 的 兩 個(gè) 數(shù) 據(jù) , 按 二 進(jìn) 制 位 進(jìn)行 “ 與 ” 運(yùn) 算 。 如 果 兩 個(gè) 相 應(yīng) 的 二 進(jìn) 制 位 都 為 , 則 該 位 的 結(jié) 果 值

3、為 ; 否 則 為 。 即 : , , , 例 : 并 不 等 于 , 應(yīng) 該 是 按 位 與 運(yùn) 算 :注 意 : 如 果 參 加 b a; a b; ( ) ( a b的 結(jié) 果 , a已 變 成 )( ) ( b a的 結(jié) 果 , b已 變 成 )( ) ( a b的 結(jié) 果 , a已 變 成 ) 15 執(zhí) 行 前 兩 個(gè) 賦 值 語(yǔ) 句 : “ ; ” 和“ ; ” 相 當(dāng) 于 b=b (a b)。 再 執(zhí) 行 第 三 個(gè) 賦 值 語(yǔ) 句 : 。 由 于a的 值 等 于 ( ) , b的 值 等 于 ( ) , 因 此 , 相 當(dāng) 于 a= ,即 a的 值 等 于 , 等 于 。 得

4、到 原 來(lái) 的 值 。即 等 效 于 以 下 兩 步 : 16 12.1.4 “ 取 反 ” 運(yùn) 算 符 ( ) 是 一 個(gè) 單 目 ( 元 ) 運(yùn) 算 符 , 用 來(lái) 對(duì) 一 個(gè) 二 進(jìn)制 數(shù) 按 位 取 反 , 即 將 變 , 將 變 。 例 如 , 是 對(duì) 八 進(jìn) 制 數(shù) ( 即 二 進(jìn) 制 數(shù) ) 按 位 求 反 。 0000000000010101( ) 1111111111101010 (八 進(jìn) 制 數(shù) 177752) 17 12.1.5 左 移 運(yùn) 算 符 ( ) 左 移 運(yùn) 算 符 是 用 來(lái) 將 一 個(gè) 數(shù) 的 各 二 進(jìn) 制位 全 部 左 移 若 干 位 。 例 如 : a

5、=) 右 移 運(yùn) 算 符 是 a2表 示 將 a的 各 二 進(jìn) 制 位右 移 2位 , 移 到 右 端 的 低 位 被 舍 棄 ,對(duì) 無(wú) 符 號(hào)數(shù) ,高 位 補(bǔ) 0。例 如 : a=017時(shí) : a的 值 用 二 進(jìn) 制 形 式 表 示 為 00001111, 舍 棄 低 2位 11: a2=00000011 右 移 一 位 相 當(dāng) 于 除 以 2 右 移 n位 相 當(dāng) 于 除 以 2n。 20在 右 移 時(shí) ,需 要 注 意 符 號(hào) 位 問(wèn) 題 : 對(duì) 無(wú) 符 號(hào) 數(shù) ,右 移 時(shí) 左 邊 高 位 移 入 0; 對(duì) 于有 符 號(hào) 的 值 ,如 果 原 來(lái) 符 號(hào) 位 為 0(該 數(shù) 為 正

6、),則 左 邊 也 是 移 入 0。 如 果 符 號(hào) 位 原 來(lái) 為 1(即 負(fù)數(shù) ),則 左 邊 移 入 0還 是 1,要 取 決 于 所 用 的 計(jì) 算機(jī) 系 統(tǒng) 。 有 的 系 統(tǒng) 移 入 0,有 的 系 統(tǒng) 移 入 1。 移入 0的 稱 為 “ 邏 輯 右 移 ” ,即 簡(jiǎn) 單 右 移 ; 移 入 1的 稱 為 “ 算 術(shù) 右 移 ” 。 21例 : a的 值 是 八 進(jìn) 制 數(shù) 113755: a:1001011111101101 ( 用 二 進(jìn) 制 形 式 表 示 )a1: 0100101111110110 (邏 輯 右 移 時(shí) )a1: 1100101111110110 (算 術(shù)

7、 右 移 時(shí) ) 在 有 些 系 統(tǒng) 中 ,a1得 八 進(jìn) 制 數(shù) 045766,而 在另 一 些 系 統(tǒng) 上 可 能 得 到 的 是 145766。 Turbo C和 其他 一 些 C編 譯 采 用 的 是 算 術(shù) 右 移 ,即 對(duì) 有 符 號(hào) 數(shù) 右移 時(shí) ,如 果 符 號(hào) 位 原 來(lái) 為 1, 左 面 移 入 高 位 的 是 1。 22 12.1.7 位 運(yùn) 算 賦 值 運(yùn) 算 符 位 運(yùn) 算 符 與 賦 值 運(yùn) 算 符 可 以 組 成 復(fù) 合 賦 值 運(yùn) 算 符 。 例 如 : scanf(“%o”, b=a4; c= ( 04); d=b printf(“%o,%dn%o,%dn”,

8、a,a,d,d);運(yùn) 行 情 況 如 下 : ( 輸 入 ) , 217 ( 的 值 ) , 13 ( 的 值 ) 輸 入 的 值 為 八 進(jìn) 制 數(shù) 331, 其 二 進(jìn) 制 形 式 為 11011001 經(jīng) 運(yùn) 算 最 后 得 到 的 d為 00001101 即 八 進(jìn) 制 數(shù) , 十 進(jìn) 制 數(shù) 13。 26 例 12.2 循 環(huán) 移 位 。要 求 將 進(jìn) 行 右 循 環(huán) 移 位 將 右 循 環(huán) 移 位 ,即 將 中 原 來(lái) 左 面( ) 位 右移 位 , 原 來(lái) 右 端 位 移 到 最 左 面 位 。 27 將 的 右 端 位 先 放 到 中 的 高 位 中 ,實(shí) 現(xiàn) 語(yǔ) 句 : (

9、) ; 將 右 移 位 , 其 左 面 高 位 位 補(bǔ) ,實(shí) 現(xiàn) 語(yǔ) 句 : ; 將 與 進(jìn) 行 按 位 或 運(yùn) 算 , 即 | ;步 驟 : 28 程 序 如 下 :#include void main() unsigned a,b,c; int n; scanf(“a=%o,n=%d”, b=an; c=c|b; printf(“%on%o”,a,c); 運(yùn) 行 情 況 如 下 : , 3 運(yùn) 行 開 始 時(shí) 輸 入 八 進(jìn) 制 數(shù) 157653,即 二 進(jìn) 制 數(shù) 1101111110101011循 環(huán) 右 移 位 后 得 二 進(jìn) 制 數(shù) 0111101111110101即 八 進(jìn) 制

10、數(shù) 75765 29 12.3 位 段 信 息 的 存 取 一 般 以 字 節(jié) 為 單 位 。 實(shí) 際 上 , 有 時(shí)存 儲(chǔ) 一 個(gè) 信 息 不 必 用 一 個(gè) 或 多 個(gè) 字 節(jié) , 例 如 , “ 真 ”或 “ 假 ” 用 或 表 示 , 只 需 位 即 可 。 在 計(jì) 算 機(jī)用 于 過(guò) 程 控 制 、 參 數(shù) 檢 測(cè) 或 數(shù) 據(jù) 通 信 領(lǐng) 域 時(shí) , 控 制信 息 往 往 只 占 一 個(gè) 字 節(jié) 中 的 一 個(gè) 或 幾 個(gè) 二 進(jìn) 制 位 ,常 常 在 一 個(gè) 字 節(jié) 中 放 幾 個(gè) 信 息 。 30(1) 可 以 人 為 地 將 一 個(gè) 整 型 變 量 data分 為 幾 部 分 。

11、 但 是 用 這 種 方 法 給 一 個(gè) 字 節(jié) 中 某 幾 位 賦值 太 麻 煩 。 可 以 位 段 結(jié) 構(gòu) 體 的 方 法 。 怎 樣 向 一 個(gè) 字 節(jié) 中 的 一 個(gè) 或 幾 個(gè) 二 進(jìn) 制 位 賦 值 和 改變 它 的 值 呢 ? 可 以 用 以 下 兩 種 方 法 :( 2) 位 段 C語(yǔ) 言 允 許 在 一 個(gè) 結(jié) 構(gòu) 體 中 以 位 為 單 位 來(lái) 指定 其 成 員 所 占 內(nèi) 存 長(zhǎng) 度 , 這 種 以 位 為 單 位 的 成員 稱 為 “ 位 段 ” 或 稱 “ 位 域 ” ( bit field) 。 利 用 位 段 能 夠 用 較 少 的 位 數(shù) 存 儲(chǔ) 數(shù) 據(jù) 。 3

12、1 程 序 如 下 :struct packed-data unsigned : ; unsigned : ; unsigned : ; unsigned : ; int ; data; 32( 1) 位 段 成 員 的 類 型 必 須 指 定 為 unsigned或 int類 型 。( 2) 若 某 一 位 段 要 從 另 一 個(gè) 字 開 始 存 放 , 可 用 以 下 形式 定 義 :unsigned : 1;unsigned b: ; 一 個(gè) 存 儲(chǔ) 單 元 unsigned: ;unsigned : ; 另 一 存 儲(chǔ) 單 元 a、 b、 c應(yīng) 連 續(xù) 存 放 在 一 個(gè) 存 儲(chǔ) 單

13、元 中 , 由 于 用 了 長(zhǎng)度 為 的 位 段 , 其 作 用 是 使 下 一 個(gè) 位 段 從 下 一 個(gè) 存儲(chǔ) 單 元 開 始 存 放 。 因 此 , 只 將 a、 b存 儲(chǔ) 在 一 個(gè) 存 儲(chǔ)單 元 中 , c另 存 在 下 一 個(gè) 單 元 (“ 存 儲(chǔ) 單 元 ” 可 能 是一 個(gè) 字 節(jié) , 也 可 能 是 2個(gè) 字 節(jié) , 視 不 同 的 編 譯 系 統(tǒng)而 異 )。 關(guān) 于 位 段 的 定 義 和 引 用 的 說(shuō) 明 : 33(3) 一 個(gè) 位 段 必 須 存 儲(chǔ) 在 同 一 存 儲(chǔ) 單 元 中 , 不 能跨 兩 個(gè) 單 元 。 如 果 第 一 個(gè) 單 元 空 間 不 能 容納 下 一 個(gè) 位 段 , 則 該 空 間 不 用 , 而 從 下 一個(gè) 單 元 起 存 放 該 位 段 。(4) 可 以 定 義 無(wú) 名 位 段 。(5) 位 段 的 長(zhǎng) 度 不 能 大 于 存 儲(chǔ) 單 元 的 長(zhǎng) 度 , 也 不能 定 義 位 段 數(shù) 組 。(6) 位 段 可 以 用 整 型 格 式 符 輸 出 。(7) 位 段 可 以 在 數(shù) 值 表 達(dá) 式 中 引 用 , 它 會(huì) 被 系 統(tǒng)自 動(dòng) 地 轉(zhuǎn) 換 成 整 型 數(shù) 。 關(guān) 于 位 段 的 定 義 和 引 用 的 說(shuō) 明 :

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!