WPS表格中怎么添加附件(wps里面怎么加附件)
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小時內刪除侵權內容。