给定一个网络掩码,计算可用主机的数量?

在Go中,我找到了这样一个算法,但我不明白,谁能帮我解释一下,谢谢!


func networkSize(mask net.IPMask) int32 {

    m := net.IPv4Mask(0, 0, 0, 0)

    for i := 0; i < net.IPv4len; i++ {

        m[i] = ^mask[i]

    }


    return int32(binary.BigEndian.Uint32(m)) + 1

}


皈依舞
浏览 187回答 2
2回答

繁星淼淼

反转网络掩码中的每一位,将结果视为双端 32 位整数的 4 个字节,并将结果加 1。所以255.255.252.0 => 00000000.00000000.00000011.11111111 => 1023,加1就是1024。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go