当前位置:编程学习 > Delphi >>

Delphi中如何转变这样的语法?

 if ((nState & 0x80) > 0)
            {
                return 10002;
            }

其中的&代表的是与 类似Delphi的and       而我在编译的时候报0x80这个int类型的无法找到、这是为什么?Delphi中操作这些怎么去做?

追问:

下面的怎么弄呢? 

 

private float GetWeightByBuffer(string strBuffer)
        {
            char[] buffer;
            float minusFlag, pointPos;
            float nResult;

            buffer = strBuffer.ToCharArray();

            //    '检测标识位
            int nState = buffer[1];
            // '重量溢出
            if ((nState & 0x80) > 0)
            {
                return 10002;
            }

            //重量不稳定
            if ((nState & 0x40) == 0)
            {
                return 10003;
            }

            //负数
            if ((nState & 0x20) == 0)
            {
                minusFlag = 1;
            }
            else
            {
                minusFlag = -1;
            }
            //非计重模式
            if ((nState & 0xFF) == 0)
            {
                return 10004;
            }

            //小数点位置
            pointPos = nState % 8;

            //   循环取数值
            nResult = 0;
            for (int i = buffer.Length - 1; i >= 2; i--)
            {
                float nTemp = buffer[i];
                nResult = nResult * 100 + Convert.ToInt32(nTemp / 16) * 10 + (nTemp % 16);
            }
            //    '根据小数点位置处理数值
            for (int i = 1; i < pointPos; i++)
            {
                nResult = nResult / 10;
            }
            //    '加正负号
            nResult = nResult * minusFlag;

            return nResult;
        }

;

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,