在Excel中實現位運算

      網友投稿 2519 2025-04-01

      在Excel中實現位運算

      我們知道,計算機使用的是二進制計數法。也就是說,在計算機中的所有信息都是使用二進制來存儲和處理的。

      下表列出了我們熟悉的十進制數及與其相對應的二進制數:

      位運算規則

      在位運算中,“按位與”運算(AND運算)分別按位比較兩個相應的數字(0或1),當且僅當這兩個數字都為1時,結果才為1,如下式所示:

      可以看出,實現“按位與”運算,就是將對應位置的數相乘。因此,從右自左的第1個位置是1*1=1,第2個位置是0*1=1,等等,最后得到結果。

      除了“按位與”運算外,還有按位或(OR)、異或(XOR)、蘊含(IMP)、相等(EQ)和非(NOT)運算,它們都有不同的運算規則。例如,對于OR運算來說,當兩個數字至少有一個為1時,結果為1,如下式所示:

      同理,可以看出,實現“按位與”運算,就是將對應位置的數相加,結果為正數就是1,結果為零就是0。因此,從右自左第1個位置是1+1=2,即為1,第2個位置是0+1=1,就是1,等等,最后得到結果。

      其他的位運算規則可以參閱相關資料,下面主要以“按位與”和“按位或”為例,解如何在Excel中實現位運算。

      將十進制數轉換成二進制數

      有時候,在Excel工作表中實現位運算是非常有用的,然而,Excel并沒有直接用于位運算的函數,這就需要我們組合一些函數來實現位運算功能。

      下面,以處理0至255之間的十進制數為例。

      在將0至255之間的十進制數轉換成二進制數時,需要的二進制數的位數是8位。例如,十進制數0的二進制數表示為:

      00000000

      十進制數255的二進制數表示為:

      11111111

      可以使用下面的公式來獲得十制數相對應的二進制數的每一位(0或1):

      =MOD(INT(十進制數/(2^(二進制數所處的位置值-1))),2)

      也就是說,要求二進制數中的其中一位,先求2對該位所在的位置值減1的冪,然后由其十進制數除以所求冪的結果,對求得的結果取整,并作為MOD函數的參數求其對2的余數,即為該位所在的二進制數(0或1)。

      下圖1演示了在Excel工作表中使用公式將十進制數222轉換成二進制數11011110的過程。

      圖1

      在將十進制數轉換成二進制數后,我們可以按照位運算的規則對兩個或多個二進制數進行位運算。

      在Excel中實現位運算

      下圖2展示了“按位與”運算,并將二進制數結果轉換回十進制數。

      圖2

      下圖3展示了“按位或”運算,并將二進制數結果轉換回十進制數。

      圖3

      可以看出,將二進制數轉換成十進制數,只需將對應的位乘以2的該位所在位置減1的結果次方,然后將所有結果相加即可。

      使用SUMPRODUCT函數與上面的公式相結合,可以省去上面介結的一些中間步驟,即在一個公式中就將二個十進制數轉換成二進制數,將它們“按位與”或者“按位或”,最后將位運算的結果轉換成十進制數的結果。

      首先,創建一個命名公式。

      名稱:b

      引用位置:={1;2;4;8;16;32;64;128}

      即用于轉換的數字常量組成的數組。第1個位置值使用2^(1-1),第2個位置使用2^(2-1),第3個位置使用2^(3-1),為8位數的每一個位執行這個操作。

      下面是我們的SUMPRODUCT公式,執行兩個十進制數(dec1和dec2)的“按位與”運算:

      =SUMPRODUCT(b * MOD(INT(dec1/b),2) * MOD(INT(dec2/b),2))

      下面的公式執行“按位或”運算:

      =SUMPRODUCT(b * SIGN(MOD(INT(dec1/b),2) + MOD(INT(dec2/b),2)))

      公式中使用SIGN函數使結果數字值不會大于1。

      因此,上文中的圖2和圖3所示的運算都可以使用一個公式來完成,如下圖4所示。

      圖4

      結語

      位運算可以用來實現很多令人驚嘆的電子表格設計,解決很多具有挑戰性的問題,待我進一步學習后與大家分享。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:一個工作表的后面還有很多空白無用的表格,怎么刪除?(怎么刪除工作表里后面空表格)
      下一篇:修改默認行高值13.5為24(設置行高為25磅)
      相關文章
      久久久久亚洲AV成人片| 亚洲欧美成人一区二区三区| 亚洲人xxx日本人18| 亚洲Aⅴ无码专区在线观看q| 国产亚洲精品a在线无码| 亚洲JIZZJIZZ中国少妇中文| 亚洲αⅴ无码乱码在线观看性色 | 亚洲一区二区三区影院 | 亚洲第一成年人网站| 亚洲美女视频一区| 亚洲第一香蕉视频| 亚洲a级片在线观看| 亚洲综合校园春色| 中文字幕亚洲综合久久综合| 亚洲欧美成人一区二区三区| 亚洲av无码专区首页| 国产精品亚洲专区无码唯爱网| 噜噜综合亚洲AV中文无码| 国产精品亚洲一区二区在线观看| 亚洲av无码专区亚洲av不卡| 一本久到久久亚洲综合| 亚洲国产精品尤物yw在线| 亚洲乱码中文字幕手机在线 | 亚洲性一级理论片在线观看| 亚洲一区二区免费视频| 亚洲综合一区国产精品| 亚洲AV无码AV吞精久久| 亚洲人成网站观看在线播放| 亚洲午夜国产精品无码老牛影视 | 亚洲夂夂婷婷色拍WW47| 亚洲精品美女久久久久久久| 在线精品自拍亚洲第一区| 亚洲精品国产高清不卡在线| 亚洲中文字幕无码爆乳AV| 久久精品国产亚洲AV麻豆王友容| 亚洲午夜在线电影| 亚洲乱码一二三四区乱码| 亚洲精品动漫免费二区| 亚洲精品成人片在线观看| 亚洲大成色www永久网站| 亚洲综合视频在线观看|