惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
月光博客
月光博客
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
U
Unit 42
腾讯CDC
爱范儿
爱范儿
J
Java Code Geeks
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
B
Blog
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - androllen

Python yield 关键词 PDF 构成 桌面客户端的主要类型和技术方案 Python 压缩转义 异步删除嵌套文件夹及文件 数据结构 二叉树遍历 数据结构 线性表 JS 字符串转换为函数体 VSCode 配置内部Python项目 缺少模块ModuleNotFoundError C# 基础知识 算法-数列 算法-排序算法 C# 设计模式-简单工厂模式 C# 设计模式 .Net 异步与同步 WPF StreamGeometry Vue 打开窗口输出文件路径 CSS Flexbox layout 2 CSS Flexbox layout 1
C# Utils
androllen · 2025-03-02 · via 博客园 - androllen

使用方法

 Debug.WriteLine(IpLongUtils.ip2Long("HTTP://192.168.1.1"));
 Debug.WriteLine(IpLongUtils.ip2Long("192.168.0.1"));
 Debug.WriteLine(IpLongUtils.long2Ip(3232235521L));
    //逻辑右移就是不考虑符号位,右移一位,左边补0
    //算术右移需要考虑符合位,右移一位,若符号位为1,就在左边补1,否则补0
    //算术右移也可以进行有符号位的除法,右移n位就等于2的n次方
    //205的二进制数是11001101 右移一位
    //逻辑右移 [0]1100110 
    //算术右移 [1]1100110
    public class IpLongUtils
    {
        /**
             * 把字符串IP转换成long
             *
             * @param ipStr 字符串IP
             * @return IP对应的long值
             */
        public static long ip2Long(string ipStr)
        {
            var ip = ipStr.ToLower().Split(new[]{"http",":","/","."},System.StringSplitOptions.RemoveEmptyEntries);
            return (long.Parse(ip[0]) << 24) + (long.Parse(ip[1]) << 16)
                    + (long.Parse(ip[2]) << 8) + long.Parse(ip[3]);
        }

        /**
         * 把IP的long值转换成字符串
         *
         * @param ipLong IP的long值
         * @return long值对应的字符串
         */
        public static string long2Ip(long ipLong)
        {
            var ipStr= $"{ipLong >> 24}.{(ipLong >> 16) & 0xFF}.{(ipLong >> 8) & 0xFF}.{ipLong & 0xFF}";
            return ipStr;
        }
    }
    //闰年的定义:能被4整除但不能被100整除,或能被400整除的年份
    public class Zero
    {
        public Zero()
        {
            for (int i = 1; i <= 2020; i++)
            {
                if (((i % 4 == 0) && (i % 100 != 0)) || (i % 400 == 0))
                {
                    Debug.WriteLine($"{i} 是闰年");
                }
            }
         
        }
    }