新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > labview編程技巧-----如何處理數據的位

        labview編程技巧-----如何處理數據的位

        作者: 時間:2017-01-09 來源:網絡 收藏
        位操作是自動化控制中經常遇到的問題,最近看到論壇上有人提到字節高四位和低四位提取的問題,今天仔細探討一下位的操作.

        位不等于LABVIEW中的布爾量BOOLEAN占一個字節,和U8 I8相同,在內存中都是一個字節.
        而一個字節是由8個位組成的,所以一個字節可以表示8個開關量.

        最簡單地操作是BOOLEAN 轉換成I16,LV本身提供,FALSE---->0,TRUE---->1
        數字轉換成BOOLEAN,LV沒提供,實際用!=0判斷就可以了,非0既為真



        因為BOOLEAN和I8 U8同占一個字節,因此轉換也可以直接用CAST函數實現


        因為LABVIEW提供了NUM-->BOOLEAN ARRAY和BOOLEAN ARRAY--->NUM的轉換,所以很容易通過BOOLEAN數組替換實現對數的位的置位復位操作.NUM的類型可以是I8、I16、I32和I64




        取出一個字節的高四位和低四位,可以通過計算和移位兩種方式實現,C語言一般用移位的方式實現,速度比較快,而BASIC語言是通過計算實現的。

        對于移位,在LV里有三種方法,1,直接用移位VI,2、利用公式節點 3、MATHSCRIPT提供了位操作函數。

        下面演示一下幾種方法:

        對于某一位置1可以通過NUM OR 0X08 實現(BIT3,從0開始),置0可以用NUM AND !0X08實現,當然也可以通過上面的BOOLEAN數組的操作實現,不過位本身操作速度應該更快一些。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 榕江县| 达拉特旗| 萨嘎县| 外汇| 忻城县| 汽车| 惠州市| 高雄县| 综艺| 黔西县| 军事| 高阳县| 舒城县| 乌海市| 阿鲁科尔沁旗| 皮山县| 洱源县| 民权县| 新巴尔虎右旗| 安图县| 吴忠市| 通江县| 莱阳市| 宜兰市| 太和县| 鹿泉市| 渝中区| 招远市| 亚东县| 鄂尔多斯市| 江口县| 鄂托克旗| 沈丘县| 万宁市| 蒲江县| 洛浦县| 连南| 汉中市| 乐至县| 息烽县| 巫溪县|