![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
轩辕敬城
我很喜欢IT,对未来的未知,充满了兴趣。
展开
-
位运算场景六高低位交换
1 描述给定一个 16 位的无符号整数,将其高 8 位与低 8 位进行交换,求出交换后的值,如:10 的二进制表示:00000000 00001010将其高8位与低8位进行交换,得到一个新的二进制数:0000101000000000其十进制为2560从上面移位操作我们可以知道,只要将无符号数 a>>8 即可得到其高 8 位移到低 8 位,高位补 0;将 a<<8 即可将 低 8 位移到高 8 位,低 8 位补 0,然后将 a>>8 和 a<..原创 2021-03-22 20:32:37 · 1472 阅读 · 0 评论 -
位运算场景五求绝对值
1 描述通常使用Math.abs 求绝对值,可以使用位运算进行。2 实现方法一 public static int abs(int a) { int i = a >> 31; return i == 0 ? a : (~a + 1); }方法二public static int abs2(int a) { int i = a >> 31; return ((a^i) - i); }3 总结通过取反的原创 2021-03-21 22:48:12 · 284 阅读 · 0 评论 -
位运算场景四正负数转换
1 描述通常正负数通过 *-1进行,此时可以通过位运算实现,交换符号将正数变成负数,负数变成正数2 实现public static int reversal(int a) { return ~a + 1;}3 总结整数取反加1,正好变成其对应的负数(补码表示);负数取反加一,则变为其原码,即正数...原创 2021-03-21 22:14:50 · 830 阅读 · 0 评论 -
位运算场景三判断奇偶
1 描述一般通过 % 2 来进行奇偶判断,同时我们可以通过位运算进行2 实现public static void isEven(int b) { if( (b & 1) == 0) { System.out.println("偶数"); } else { System.out.println("奇数"); } }3 总结通过& 运算,只要根据数的最后一位是 0 还是 1 来决定即可,为 0 就是偶数,为 1 就是奇数。...原创 2021-03-21 22:12:26 · 128 阅读 · 0 评论 -
位运算场景二元素交换
1 描述 当我们做排序的时候,特别是进行两个元素交换时,常常需要定义一个临时变量来保存过渡元素。当不使用额外空间时,我们可以利用位运算进行。2 实现 public static void swap(int a,int b) { a = a^b; b = a^b; a = a^b; System.out.println(a+","+b); }3 总结根据异或的规则, a^a =0 , a^0 = a 来达到临时变量的存储目的。...原创 2021-03-21 22:10:04 · 144 阅读 · 0 评论 -
位运算场景一成对整数里面找单个数字
1 描述: 给定一个非空整数数组,除了某个元素只出现一次外,其余每个元素均出现两次,找出那个只出现一次的元素。不使用额外空间实现样例:输入:[2,2,1]输出 1输入:[4,1,2,1,2]输出 42 实现public static void singleNumber() { int nums[] = new int[] {4,1,2,1,2}; int n = 0; for(int i=0;i<nums.length;i++) { ...原创 2021-03-21 22:04:03 · 102 阅读 · 0 评论 -
算法实现 - 判断IP是否合法
本篇主要是实现验证IP地址是否合法。说明:现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位。思路:(1)将ip使用字符串处理方式分割成数组。(2)判断数组长度是否为4,不为4,直接返回非法。(3)判断每个分割后的字符串是否是数字,如果不是数字之间返回非法。(4)判断当前数字是否在0到255之间,如果不符合非法。(...原创 2020-04-14 22:45:25 · 582 阅读 · 0 评论 -
算法实现- 数字转金额大写
本篇博文主要是通过将数字转换成常用的金融大写金额表示方式。采用数字格式成字符串,对字符串进行操作处理,来实现转换的算法。目前支持最大到千亿数据的转换。如果超出需要进行扩展处理。1. 常用大写表示方式 "零","壹","贰","叁","肆","伍","陆","柒","捌","玖"2. 常用单位表示方式 "拾","佰","仟","万","亿"3. 算法要求中...原创 2020-04-13 23:04:57 · 1296 阅读 · 0 评论