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

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

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

9.9 積分

下載資源

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

資源描述:

《C語言程序設(shè)計基礎(chǔ)(第三版)第12章-位運(yùn)算》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計基礎(chǔ)(第三版)第12章-位運(yùn)算(33頁珍藏版)》請在裝配圖網(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) 制 位 的 問 題 。l 例 如 : 將 一 個 存 儲 單 元 中 的 各 二 進(jìn) 制 位 左 移 或 右移 一 位 , 兩 個 數(shù) 按 位 相 加 等 。l 語 言 提 供 位 運(yùn) 算 的 功 能 , 與 其 他 高 級 語 言 ( 如PASCAL) 相 比 , 具 有 很 大 的 優(yōu) 越 性 。 4 12.1 位 運(yùn) 算 符 和 位 運(yùn) 算運(yùn) 算

2、 符 含 義 運(yùn) 算 符 含義 按 位 與 取反 | 按 位 或 右移(1)位 運(yùn) 算 符 中 除 以 外 , 均 為 二 目 ( 元 ) 運(yùn) 算 符, 即 要 求 兩 側(cè) 各 有 一 個 運(yùn) 算 量 。(2)運(yùn) 算 量 只 能 是 整 型 或 字 符 型 的 數(shù) 據(jù) , 不 能 為 實型 數(shù) 據(jù) 。 語 言 提 供 的 位 運(yùn) 算 符 有 : 5 12.1.1“ 按 位 與 ” 運(yùn) 算 符 ( )按 位 與 是 指 : 參 加 運(yùn) 算 的 兩 個 數(shù) 據(jù) , 按 二 進(jìn) 制 位 進(jìn)行 “ 與 ” 運(yùn) 算 。 如 果 兩 個 相 應(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í) 行 前 兩 個 賦 值 語 句 : “ ; ” 和“ ; ” 相 當(dāng) 于 b=b (a b)。 再 執(zhí) 行 第 三 個 賦 值 語 句 : 。 由 于a的 值 等 于 ( ) , b的 值 等 于 ( ) , 因 此 , 相 當(dāng) 于 a= ,即 a的 值 等 于 , 等 于 。 得

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

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

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

7、 右 移 時 ) 在 有 些 系 統(tǒng) 中 ,a1得 八 進(jìn) 制 數(shù) 045766,而 在另 一 些 系 統(tǒng) 上 可 能 得 到 的 是 145766。 Turbo C和 其他 一 些 C編 譯 采 用 的 是 算 術(shù) 右 移 ,即 對 有 符 號 數(shù) 右移 時 ,如 果 符 號 位 原 來 為 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) 移 位 ,即 將 中 原 來 左 面( ) 位 右移 位 , 原 來 右 端 位 移 到 最 左 面 位 。 27 將 的 右 端 位 先 放 到 中 的 高 位 中 ,實 現(xiàn) 語 句 : (

9、) ; 將 右 移 位 , 其 左 面 高 位 位 補(bǔ) ,實 現(xiàn) 語 句 : ; 將 與 進(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) 行 開 始 時 輸 入 八 進(jìn) 制 數(shù) 157653,即 二 進(jìn) 制 數(shù) 1101111110101011循 環(huán) 右 移 位 后 得 二 進(jìn) 制 數(shù) 0111101111110101即 八 進(jìn) 制

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

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

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

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

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

相關(guān)資源

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

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

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


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