excel vba移位运算
生活随笔
收集整理的這篇文章主要介紹了
excel vba移位运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
office excel vba移位運算
- 10進制轉16進制字符串
- 左移函數
- 右移函數
有時候要調整內存參數,或者計算相關頻率,以及通過寄存器計算對應參數的值,可以通過excel表格自動計算,不用每次手動計算,由于比較老版本的office不支持bitand,無符號long類型,當計算數值達到2的31次方時會出錯,經過反復測試,編寫了相關代碼
10進制轉16進制字符串
'10進制字符串轉帶0x開頭的16進制 Function Dec2Hex(value) Dec2Hex = "0x" + Application.WorksheetFunction.Dec2Hex(value) End Function左移函數
'輸入為10進制和左移位數 '返回10進制字符串 '如果直接乘以2的多少次方,計算2的31次方會報錯無法計算 Function decLeftMove(value, bit) Debug.Print value; bit decLeftMove = value * Application.WorksheetFunction.Power(2, bit) Debug.Print decLeftMove End Function例子
Function ddrctiming0(tmrd, trrd, trppb, trcd, trc, tras) ddrctiming0 = Dec2Hex(decLeftMove(tmrd, 28) + decLeftMove(trrd, 24) + decLeftMove(trppb, 19) + decLeftMove(trcd, 14) + decLeftMove(trc, 8) + decLeftMove(tras, 0)) End Function右移函數
當16進制long類型最高位為1時,普通計算方式會出錯,先轉換成二進制字符串,然后進行移位處理,最后轉換為10進制
'返回2進制字符串 Function Hex2Bin(value) value = Format(value, "00000000") Debug.Print value For i = 1 To 8tmp = Application.WorksheetFunction.Hex2Bin(Mid(value, i, 1))outStr = outStr + Format(tmp, "0000") Next 'Debug.Print outStr Hex2Bin = outStr End Function'返回10進制字符串 Function Bin2Dec(value) strLen = Len(value) Debug.Print "strLen:"; strLen tmp = 0 For i = strLen - 1 To 0 Step -1 tmp = tmp + Mid(value, strLen - i, 1) * (2 ^ i) Next Bin2Dec = tmp End Function'bitstart 開始位0-31 'bitmask為需要多少位001為3位 Function hexRightMove(value, bitstart, bitmask) Debug.Print value; bitstart tmp = Right(value, Len(value) - 2) '去掉0x頭 Debug.Print "0x:"; tmp tmp = Hex2Bin(tmp) Debug.Print "tmp:"; tmp tmp = Right(tmp, bitstart + bitmask) Debug.Print "right:"; tmp tmp = Left(tmp, bitmask) Debug.Print "left:"; tmp tmp = Bin2Dec(tmp) Debug.Print "dec:"; tmp hexRightMove = tmp End Function例子
Function dmctmrd(timing0) dmctmrd = hexRightMove(timing0, 28, 4) End Function
完整表格下載
===================================
作者:hclydao
http://blog.csdn.net/hclydao
版權沒有,但是轉載請保留此段聲明
======================================
總結
以上是生活随笔為你收集整理的excel vba移位运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python修改html表格,使用sty
- 下一篇: html单张图片效果,jquery+ht