• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      C語言位運(yùn)算中鮮為人知的事

      2014-09-24 11:53:38周嵐
      軟件工程 2014年5期
      關(guān)鍵詞:左移右移規(guī)則

      周嵐

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

      關(guān)鍵詞:位運(yùn)算;規(guī)則;左移;右移;可移植

      中圖分類號:TP312 文獻(xiàn)標(biāo)識碼: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)

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

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

      4 移位運(yùn)算符(Shift operator)

      在使用移位運(yùn)算符時(shí),我常常會思考這樣兩個問題:

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

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

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

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

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

      5 結(jié)論(Conclusion)

      綜上所述,在進(jìn)行位移操作時(shí),一定要小心上溢,建議在進(jìn)行左移時(shí)先強(qiáng)制將無符號數(shù)(unsigned short, unsigned char)轉(zhuǎn)換為unsigned int,再進(jìn)行運(yùn)算。

      參考文獻(xiàn)(References)

      [1] 譚浩強(qiáng).C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010:45-46.

      [2] 魏書堤,趙輝煌.C語言二進(jìn)制位運(yùn)算教學(xué)設(shè)計(jì)[J].衡陽師范學(xué)院學(xué)報(bào),2013(6):149-152.

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

      作者簡介:

      周 嵐(1977-),女,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)程序設(shè)計(jì),數(shù)據(jù)庫.endprint

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

      關(guān)鍵詞:位運(yùn)算;規(guī)則;左移;右移;可移植

      中圖分類號:TP312 文獻(xiàn)標(biāo)識碼: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)

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

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

      4 移位運(yùn)算符(Shift operator)

      在使用移位運(yùn)算符時(shí),我常常會思考這樣兩個問題:

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

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

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

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

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

      5 結(jié)論(Conclusion)

      綜上所述,在進(jìn)行位移操作時(shí),一定要小心上溢,建議在進(jìn)行左移時(shí)先強(qiáng)制將無符號數(shù)(unsigned short, unsigned char)轉(zhuǎn)換為unsigned int,再進(jìn)行運(yùn)算。

      參考文獻(xiàn)(References)

      [1] 譚浩強(qiáng).C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010:45-46.

      [2] 魏書堤,趙輝煌.C語言二進(jìn)制位運(yùn)算教學(xué)設(shè)計(jì)[J].衡陽師范學(xué)院學(xué)報(bào),2013(6):149-152.

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

      作者簡介:

      周 嵐(1977-),女,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)程序設(shè)計(jì),數(shù)據(jù)庫.endprint

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

      關(guān)鍵詞:位運(yùn)算;規(guī)則;左移;右移;可移植

      中圖分類號:TP312 文獻(xiàn)標(biāo)識碼: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)

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

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

      4 移位運(yùn)算符(Shift operator)

      在使用移位運(yùn)算符時(shí),我常常會思考這樣兩個問題:

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

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

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

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

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

      5 結(jié)論(Conclusion)

      綜上所述,在進(jìn)行位移操作時(shí),一定要小心上溢,建議在進(jìn)行左移時(shí)先強(qiáng)制將無符號數(shù)(unsigned short, unsigned char)轉(zhuǎn)換為unsigned int,再進(jìn)行運(yùn)算。

      參考文獻(xiàn)(References)

      [1] 譚浩強(qiáng).C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010:45-46.

      [2] 魏書堤,趙輝煌.C語言二進(jìn)制位運(yùn)算教學(xué)設(shè)計(jì)[J].衡陽師范學(xué)院學(xué)報(bào),2013(6):149-152.

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

      作者簡介:

      周 嵐(1977-),女,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)程序設(shè)計(jì),數(shù)據(jù)庫.endprint

      猜你喜歡
      左移右移規(guī)則
      “水溶液中的離子平衡”的“不一定”
      華容道玩法大解密
      撐竿跳規(guī)則的制定
      數(shù)獨(dú)的規(guī)則和演變
      太極拳養(yǎng)生八式(中)
      少林與太極(2018年9期)2018-09-28 08:37:40
      太極拳養(yǎng)生八式(上)
      少林與太極(2018年8期)2018-08-26 05:53:58
      讓規(guī)則不規(guī)則
      Coco薇(2017年11期)2018-01-03 20:59:57
      TPP反腐敗規(guī)則對我國的啟示
      BMH2C單模匹配算法的研究與改進(jìn)
      開懷一笑
      孟州市| 泰兴市| 夏津县| 霍林郭勒市| 清流县| 博罗县| 灵宝市| 道孚县| 博白县| 德惠市| 宜黄县| 沁水县| 弋阳县| 仪陇县| 荃湾区| 信阳市| 景德镇市| 盐山县| 伊金霍洛旗| 游戏| 皋兰县| 扎兰屯市| 晋城| 辰溪县| 昆山市| 镇安县| 涟水县| 张掖市| 新晃| 三河市| 白玉县| 德安县| 邯郸县| 儋州市| 息烽县| 安化县| 金川县| 阜新| 安化县| 德惠市| 兴城市|