999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言位運算中鮮為人知的事

2014-09-24 11:53:38周嵐
軟件工程 2014年5期
關鍵詞:規則

周嵐

摘 要:在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能,這使得C語言也能像匯編語言一樣用來編寫系統程序。位運算說的簡單一些,就是直接對整數在內存中的二進制位進行操作。希望通過本文讓大家了解位運算中鮮為人知的事情。

關鍵詞:位運算;規則;左移;右移;可移植

中圖分類號:TP312 文獻標識碼:A

Abstract:In many system program often requires(bit)in a computing or processing.C language provides a calculation function,which makes the C language can be the same as the assembly language used to write the program.Bit operation that simple, just to integer in binary bits in memory operation.Hope that through this article to let everybody know the little-known things bit operation.

Keywords:bit operations;rules;left;right;transplantation

1 引言(Introduction)

程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算說的簡單一些,就是直接對整數在內存中的二進制位進行操作。比如,and運算本來是一個邏輯運算符,但整數與整數之間也可以進行and運算。舉個例子,6的二進制是110,11的二進制是1011,那么6 and 11的結果就是2,它是二進制對應位進行邏輯運算的結果(0表示False,1表示True,空位都當0處理)[1]。

在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能,這使得C語言也能像匯編語言一樣用來編寫系統程序。

4 移位運算符(Shift operator)

在使用移位運算符時,我常常會思考這樣兩個問題:

(1)在向右移位時,空出的位是由0填充,還是由符號位填充?

(2)移位計數允許的取值范圍是什么?

第一個問題的答案很簡單,但有時卻是與具體的C語言實現有關。如果被移位的對象是無符號數,那么空出的位將被0填充[2]。如果被移位的對象是有符號數,那么C語言實現既可以用0填充空出的位,也可以用符號位的副本填充空出的位。我們如果關注向右移位時空出的位,那么可以將操作的變量聲明為無符號類型,那么空出的位都會被設置為0。

另外,C語言中位移操作分為算術位移和邏輯位移,二者都表示為<<和>>運算符。

進行左移操作時,算術位移和邏輯位移都在結果右端補0。但是右移時有所不同,算術位移在左端填充符號位(正數為0,負數為1),邏輯位移在左端補0。位移運算的特性結合C算術運算時類型提升特性,很容易出錯[3]。讓我們再看一個例子。

5 結論(Conclusion)

綜上所述,在進行位移操作時,一定要小心上溢,建議在進行左移時先強制將無符號數(unsigned short, unsigned char)轉換為unsigned int,再進行運算。

參考文獻(References)

[1] 譚浩強.C語言程序設計[M].北京:清華大學出版社,2010:45-46.

[2] 魏書堤,趙輝煌.C語言二進制位運算教學設計[J].衡陽師范學院學報,2013(6):149-152.

[3] 趙忠孝,楊亞蕾.對C語言指針教學問題的探究[J].計算機教育,2009(19):78-79.

作者簡介:

周 嵐(1977-),女,碩士,講師.研究領域:計算機程序設計,數據庫.endprint

摘 要:在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能,這使得C語言也能像匯編語言一樣用來編寫系統程序。位運算說的簡單一些,就是直接對整數在內存中的二進制位進行操作。希望通過本文讓大家了解位運算中鮮為人知的事情。

關鍵詞:位運算;規則;左移;右移;可移植

中圖分類號:TP312 文獻標識碼:A

Abstract:In many system program often requires(bit)in a computing or processing.C language provides a calculation function,which makes the C language can be the same as the assembly language used to write the program.Bit operation that simple, just to integer in binary bits in memory operation.Hope that through this article to let everybody know the little-known things bit operation.

Keywords:bit operations;rules;left;right;transplantation

1 引言(Introduction)

程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算說的簡單一些,就是直接對整數在內存中的二進制位進行操作。比如,and運算本來是一個邏輯運算符,但整數與整數之間也可以進行and運算。舉個例子,6的二進制是110,11的二進制是1011,那么6 and 11的結果就是2,它是二進制對應位進行邏輯運算的結果(0表示False,1表示True,空位都當0處理)[1]。

在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能,這使得C語言也能像匯編語言一樣用來編寫系統程序。

4 移位運算符(Shift operator)

在使用移位運算符時,我常常會思考這樣兩個問題:

(1)在向右移位時,空出的位是由0填充,還是由符號位填充?

(2)移位計數允許的取值范圍是什么?

第一個問題的答案很簡單,但有時卻是與具體的C語言實現有關。如果被移位的對象是無符號數,那么空出的位將被0填充[2]。如果被移位的對象是有符號數,那么C語言實現既可以用0填充空出的位,也可以用符號位的副本填充空出的位。我們如果關注向右移位時空出的位,那么可以將操作的變量聲明為無符號類型,那么空出的位都會被設置為0。

另外,C語言中位移操作分為算術位移和邏輯位移,二者都表示為<<和>>運算符。

進行左移操作時,算術位移和邏輯位移都在結果右端補0。但是右移時有所不同,算術位移在左端填充符號位(正數為0,負數為1),邏輯位移在左端補0。位移運算的特性結合C算術運算時類型提升特性,很容易出錯[3]。讓我們再看一個例子。

5 結論(Conclusion)

綜上所述,在進行位移操作時,一定要小心上溢,建議在進行左移時先強制將無符號數(unsigned short, unsigned char)轉換為unsigned int,再進行運算。

參考文獻(References)

[1] 譚浩強.C語言程序設計[M].北京:清華大學出版社,2010:45-46.

[2] 魏書堤,趙輝煌.C語言二進制位運算教學設計[J].衡陽師范學院學報,2013(6):149-152.

[3] 趙忠孝,楊亞蕾.對C語言指針教學問題的探究[J].計算機教育,2009(19):78-79.

作者簡介:

周 嵐(1977-),女,碩士,講師.研究領域:計算機程序設計,數據庫.endprint

摘 要:在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能,這使得C語言也能像匯編語言一樣用來編寫系統程序。位運算說的簡單一些,就是直接對整數在內存中的二進制位進行操作。希望通過本文讓大家了解位運算中鮮為人知的事情。

關鍵詞:位運算;規則;左移;右移;可移植

中圖分類號:TP312 文獻標識碼:A

Abstract:In many system program often requires(bit)in a computing or processing.C language provides a calculation function,which makes the C language can be the same as the assembly language used to write the program.Bit operation that simple, just to integer in binary bits in memory operation.Hope that through this article to let everybody know the little-known things bit operation.

Keywords:bit operations;rules;left;right;transplantation

1 引言(Introduction)

程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算說的簡單一些,就是直接對整數在內存中的二進制位進行操作。比如,and運算本來是一個邏輯運算符,但整數與整數之間也可以進行and運算。舉個例子,6的二進制是110,11的二進制是1011,那么6 and 11的結果就是2,它是二進制對應位進行邏輯運算的結果(0表示False,1表示True,空位都當0處理)[1]。

在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能,這使得C語言也能像匯編語言一樣用來編寫系統程序。

4 移位運算符(Shift operator)

在使用移位運算符時,我常常會思考這樣兩個問題:

(1)在向右移位時,空出的位是由0填充,還是由符號位填充?

(2)移位計數允許的取值范圍是什么?

第一個問題的答案很簡單,但有時卻是與具體的C語言實現有關。如果被移位的對象是無符號數,那么空出的位將被0填充[2]。如果被移位的對象是有符號數,那么C語言實現既可以用0填充空出的位,也可以用符號位的副本填充空出的位。我們如果關注向右移位時空出的位,那么可以將操作的變量聲明為無符號類型,那么空出的位都會被設置為0。

另外,C語言中位移操作分為算術位移和邏輯位移,二者都表示為<<和>>運算符。

進行左移操作時,算術位移和邏輯位移都在結果右端補0。但是右移時有所不同,算術位移在左端填充符號位(正數為0,負數為1),邏輯位移在左端補0。位移運算的特性結合C算術運算時類型提升特性,很容易出錯[3]。讓我們再看一個例子。

5 結論(Conclusion)

綜上所述,在進行位移操作時,一定要小心上溢,建議在進行左移時先強制將無符號數(unsigned short, unsigned char)轉換為unsigned int,再進行運算。

參考文獻(References)

[1] 譚浩強.C語言程序設計[M].北京:清華大學出版社,2010:45-46.

[2] 魏書堤,趙輝煌.C語言二進制位運算教學設計[J].衡陽師范學院學報,2013(6):149-152.

[3] 趙忠孝,楊亞蕾.對C語言指針教學問題的探究[J].計算機教育,2009(19):78-79.

作者簡介:

周 嵐(1977-),女,碩士,講師.研究領域:計算機程序設計,數據庫.endprint

猜你喜歡
規則
拼寫規則歌
撐竿跳規則的制定
數獨的規則和演變
依據規則的推理
法律方法(2019年3期)2019-09-11 06:26:16
善用首次銷售規則
中國外匯(2019年7期)2019-07-13 05:44:52
規則的正確打開方式
幸福(2018年33期)2018-12-05 05:22:42
顛覆傳統規則
環球飛行(2018年7期)2018-06-27 07:26:14
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
TPP反腐敗規則對我國的啟示
啦啦操2010—2013版與2013—2016版規則的對比分析
運動(2016年6期)2016-12-01 06:33:42
主站蜘蛛池模板: 国产人人射| 国产精品久久久久久久久| 东京热一区二区三区无码视频| 国产视频只有无码精品| 在线观看视频99| 最新国产高清在线| 怡红院美国分院一区二区| 老司机午夜精品网站在线观看| 亚洲愉拍一区二区精品| 国产xx在线观看| 亚洲国产av无码综合原创国产| 亚洲精品无码专区在线观看| 97在线国产视频| 国产不卡一级毛片视频| 日韩免费毛片视频| 中美日韩在线网免费毛片视频| 在线观看免费人成视频色快速| 亚洲综合日韩精品| 国产成人精品视频一区视频二区| 国产99免费视频| 国产成人艳妇AA视频在线| 国产97色在线| 久久精品人人做人人爽97| 97超级碰碰碰碰精品| 国产精品久久自在自线观看| 亚洲综合在线最大成人| 美女黄网十八禁免费看| 亚洲婷婷在线视频| 又爽又大又黄a级毛片在线视频| 精品国产美女福到在线不卡f| 成人一级黄色毛片| 国产精品无码AⅤ在线观看播放| 国产亚洲欧美日韩在线观看一区二区| 57pao国产成视频免费播放| 成人欧美日韩| 婷婷亚洲天堂| 精品少妇人妻av无码久久| 97se亚洲综合在线韩国专区福利| 青青久久91| 制服丝袜在线视频香蕉| 野花国产精品入口| 91精品综合| 一本大道视频精品人妻 | 欧美午夜久久| 国产乱子伦精品视频| 亚洲 欧美 中文 AⅤ在线视频| 欧美日韩一区二区三| 亚洲午夜18| 国产日本欧美在线观看| 久久综合结合久久狠狠狠97色| 国产精品漂亮美女在线观看| 国产无码精品在线| 高潮爽到爆的喷水女主播视频| 国产99在线观看| 久草视频一区| 国产精品一区不卡| 亚洲午夜久久久精品电影院| 亚洲第一黄片大全| 午夜福利免费视频| 91精品福利自产拍在线观看| 亚洲精品动漫| 2018日日摸夜夜添狠狠躁| 亚洲区欧美区| 香蕉eeww99国产在线观看| 国产亚洲精品97AA片在线播放| 亚洲免费人成影院| 精品无码一区二区三区在线视频| 天堂岛国av无码免费无禁网站| 国产91精选在线观看| 凹凸精品免费精品视频| 日本国产精品| 3D动漫精品啪啪一区二区下载| 亚洲男人在线| 黄色国产在线| 欧美日韩在线亚洲国产人| 亚洲区第一页| 日本不卡视频在线| 亚洲大学生视频在线播放| 国产高清精品在线91| 亚洲日韩图片专区第1页| 漂亮人妻被中出中文字幕久久| 2021国产v亚洲v天堂无码|