zoukankan      html  css  js  c++  java
  • MAC地址加减1算法

    please input the mac :
    00:1A:A9:AA:BB:CC
    new mac for decrease is :00:1A:A9:AA:BB:CB
    new mac for increase is :00:1A:A9:AA:BB:CD

    #define  BOOL int 
    #define  FALSE 0 
    #define  TRUE  1 
    #include <stdio.h> 
    #include <string.h> 
    BOOL macDecrease(char * mac) //DECREASE MAC BY ONE 

        int num=16; 
        while(num>=0) 
        { 
            if('A' == mac[num]) 
            { 
                mac[num]='9'; 
                break; 
            } 
            else if('0' == mac[num]) 
            { 
                mac[num]='F'; 
                num--; 
            }
            else if(':' == mac[num])
            {
                num--;
            }
            else 
            { 
                mac[num]--; 
                break; 
            } 
        } 
        if(-1 == num) 
             return FALSE; //DECREASE FAIL 
        else 
            return TRUE; 

    BOOL macIncrease(char * mac) //INCREASE MAC BY ONE 

        int num=16; 
        while(num>=0) 
        { 
            if('9' == mac[num]) 
            { 
                mac[num]='A'; 
                break; 
            } 
            else if('F' == mac[num]) 
            { 
                mac[num]='0'; 
                num--; 
            }
            else if(':' == mac[num])
            {
                num--;
            }
            else 
            { 
                mac[num]++; 
                break; 
            } 
        } 
        if(-1 == num) 
             return FALSE;  //inclease FAIL 
        else 
            return TRUE; 

    void main(int argc, char* argv[]) 

        char mac[18],macInc[18]; 
        printf("please input the mac :\n"); 
        scanf("%s",mac); 
        strcpy(macInc,mac); 
        if(TRUE == macDecrease(mac)) 
            printf("new mac for decrease is :%s\n",mac); 
        else 
            printf("wrong in decrease\n"); 
        if(TRUE == macIncrease(macInc)) 
            printf("new mac for increase is :%s\n",macInc); 
        else 
            printf("wrong in increase\n"); 

  • 相关阅读:
    评教说明
    使用firebird2.1与dbEntry.net做的设备报修小程序
    不知道为什么IList.Contains()总是返回FALSE
    DbEntry.net复合索引设置
    招生网上报名程序090512.rar
    aspnetdb生成
    推荐工具ActiveWriter
    dbEntry.net CK.K的高级应用
    tomcat添加虚拟子目录
    短信网关与短信猫
  • 原文地址:https://www.cnblogs.com/cute/p/2076381.html
Copyright © 2011-2022 走看看