‍‍‍‍位运算是指按二进制进行的运算。

在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。(java中基本相同)

运算符介绍:

& 按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

| 按位或,两个相应的二进制位中只要有一个为1,该位的结果值为1

^ 按位异或,若参加运算的两个二进制位值相同则为0,否则为1

~ 取反 ,~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0

<

>> 右移 ,将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

应用思路:

在应用中当涉及多选1或者多选多的选择结果问题时,可通过位运算的结果来表示选择和不选的情况,这样能节省存储并提高效率。

public static void main(String[] args)

{

int num = 1;//1

System.out.println(Integer.toBinaryString(num));

System.out.println(num <

System.out.println(num <

System.out.println(num | num <

int num2 = 8;

System.out.println(Integer.toBinaryString(8));

System.out.println(num2 >> 1);

System.out.println(num2 >> 2);

System.out.println(num2 >> 1 | num2 >> 2 | num2 >> 3);

int num3 = 16;

String s = Integer.toBinaryString(num3);

System.out.println("s=" + s);

char[] a = s.toCharArray();

for (int i = 0; i

{

System.out.println("num=" + i + ",c=" + a[i] + ",notZero=" + (a[i] == '1'));

}

}

结果输出:

1

2

4

7

1000

4

2

7

s=10000

num=0,c=1,notZero=true

num=1,c=0,notZero=false

num=2,c=0,notZero=false

num=3,c=0,notZero=false

num=4,c=0,notZero=false

java 二进制转十进制的算法_java中位运算与整数的十进制转二进制相关推荐

  1. java 位与运算_java中位运算和移位运算详解

    一.位运算 (1)按 位 与 & 如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0.首先我们看一下对正数的运算 分别看一下正数和负数的具体运算步骤 正数直接取二进 ...

  2. java 二进制转十进制的算法_java中十进制数转换二进制数

    将十进制转换成二进制的算法如下: 1.给定一个数: 2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止.所以我们要做的就是用你给定的这个数除以2,如果结 ...

  3. java中取整数绝对值_Java之——位运算求整数绝对值

    通过下面的位运算可以得到一个整数的绝对值 public int abs( int a ) { return (a + (a >> 31)) ^ (a >> 31) ;//前半部 ...

  4. 算法之美 | 位运算的巧妙奥秘(一) | JAVA中位运算的深入浅出

    文章目录 前言 一.位运算符号 二.位运算的运算规则 扩展 前言 传智杯初赛后有感而写,我目前阶段所学习的算法,只是最基础的数学,对于数字和数学公式还是不敏感,在小卡与质数2那道题,解题的思路只有最基 ...

  5. 打开dll文件时模块加载失败,请确保二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题

    ** 打开dll文件时模块加载失败,请确保二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题 **打开dll文件时模块加载失败,电脑提示请确保二进制存储在指定的路径中,或 ...

  6. 位运算求整数中二进制1的个数

    package _位运算;public class _位运算求整数中1的个数 {public static void main(String[] args) {int n = 4;int ans = ...

  7. C/C++中位运算操作符的使用

    C/C++中位运算操作符的使用 介绍 使用 "与"运算符 "或"运算符 "取反操作" "异或"运算符 "左移& ...

  8. C语言截取整数的某些位编程,C语言中位运算的巧用(转)

    一 .位运算实例 1.用一个表达式,判断一个数X是否是2的N次方(2,4,8,16.....),不可用循环语句. X:2,4,8,16转化成二进制是10,100,1000,10000.如果减1则变成0 ...

  9. c语言中位运算之布尔运算

    c语言中位运算中的布尔运算有:&.|.~.^ &:按位与 |:按位或 ~:按位非 ^:按位异或,相同为0,相异为1. 计算规则如下: 位的逻辑运算的作用: 使用位向量做集合编码: 使用 ...

  10. 递归算法和迭代算法_Java中没有递归的二进制搜索–迭代算法

    递归算法和迭代算法 这周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 . 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于在排序数组中定位项目的位置. 二进制 ...

最新文章

  1. 2021-10-27 我与地坛
  2. 南瓜派php,南瓜派_【顶级厨师】南瓜派_日志_美食天下
  3. APT***的那些事
  4. oracle 共享硬盘主从,oracle dataguard主从切换
  5. asp.net发送邮件时在正文中插入图片
  6. 小心 HttpClient 中的 FormUrlEncodeContent 的 bug
  7. React :caniuse-lite is outdated. please run next command
  8. ubuntu9.10之grub.cfg详解
  9. 吴俊计算机音乐研究者,音乐与科学有效整合的研究
  10. Android 使用低功耗蓝牙简单介绍
  11. 新建了个文件写代码报 Delete `␍`
  12. 跟我学在高德地图——标注我的位置
  13. 疯狂的程序员_戴蓓会客厅第13期|疯狂的程序员 三维家蔡志森的野心
  14. [脚本]用windows批处理文件自动化Python(虚拟)环境的配置
  15. 程序员视角m1 Macbook air使用指南和指令备忘录
  16. php百分比乘加,PHP学习笔记第一篇 基础知识
  17. 知网caj怎么转成可编辑的Word?手机可以转吗?
  18. dijkstra算法为什么不能计算负权重?
  19. Linux云计算薪资及发展前景,云计算Linux就业方向及前景分析 2019云计算行业发展现状及前景趋势分析...
  20. [黑科技] WPS通过VB宏函数实现自编号功能

热门文章

  1. 从零单排PAT1015,1016,1017,1018
  2. Ext.Net学习笔记之动态加载TabPanel
  3. 21幅非常有创意的倒影摄影作品欣赏
  4. lazada发货_Lazada发货要求及注意事项
  5. 前端面试宝典(1)——HTMLCSS
  6. Vue,Javascript--时间戳的操作
  7. day20,日志和正则表达式
  8. mvc 调试 f12 浏览器闪退
  9. 关于pdf阅读器的选择
  10. Linux特殊符号浅谈