南通 网站优化,上海 外贸网站,asp做的网站如何发布,网站建设是什么工作我有一些python代码#xff0c;我想在一个100%的php代码中使用。你知道我怎么转换代码吗#xff1f;#xff1f;#xff1f;我在转换代码时遇到问题#xff0c;尤其是部分get bit和set bit。在位掩码通过snmp从交换机中读取#xff0c;掩码表示交换机端口位于定义的vlan中…我有一些python代码我想在一个100%的php代码中使用。你知道我怎么转换代码吗我在转换代码时遇到问题尤其是部分get bit和set bit。在位掩码通过snmp从交换机中读取掩码表示交换机端口位于定义的vlan中。示例snmpget 1.3.6.1.2.1.17.7.1.4.3.1.2。返回一个十六进制字符串如F100000000000000每个十六进制数字表示交换机的4个物理LAN端口。本例中的第一个数字是F表示二进制1111。这意味着1-4的每个端口都在vlan中。在如果只需要端口1、2和4掩码将是1101并且是十六进制D代码的目标是我想知道例如端口15是否在vlan中(getbitatposition)如果不是我可以更改端口位置的位掩码(setBitaPosition)。在例如端口15位于从左起的char 4中F端口1-41端口5-8端口0-90端口13-16gt十六进制0gt二进制0000要获得vlan中的端口15我必须将第3位从0000更改为0010并将其转换回hexgt2。在例如新掩码将为F102000000000000python代码def convertHexCharacterToInt(char):if (char.upper() A):return 10elif (char.upper() B):return 11elif (char.upper() C):return 12elif (char.upper() D):return 13elif (char.upper() E):return 14elif (char.upper() F):return 15else:return (int(char))def convertIntToHexCharacter(integer):if (integer 0 or integer 15):return -1if (integer 10):return str(integer)elif (integer 10):return Aelif (integer 11):return Belif (integer 12):return Celif (integer 13):return Delif (integer 14):return Eelif (integer 15):return Fdef __getBitAtPosition(position, bitmap):for x in range(0, len(bitmap)):mask 0x8for y in range(0, 4):if (((x * 4) y 1) position):return (convertHexCharacterToInt(bitmap[x]) mask) ! 0mask mask 1return Nonedef __setBitAtPosition(position, bitmap, value):if (__getBitAtPosition(position, bitmap) value):return bitmapcharPosition (position 3) / 4 - 1bitPosition int(math.fabs((position - (charPosition * 4)) - 4))bitValue 2 ** bitPositionfourBitValue convertHexCharacterToInt(bitmap[charPosition])newValue Noneif (value):newValue fourBitValue bitValueelse:newValue fourBitValue - bitValuenewBitmap bitmap[:charPosition] convertIntToHexCharacter(newValue) bitmap[charPosition 1:]return newBitmap这是我第一次尝试但结果不一样^{pr2}$