二进制的一些知识
来源:互联网 发布:php 协程 异步 编辑:程序博客网 时间:2024/05/14 09:25
1:什么是二进制?
所谓二进制,也就是计算机运算时用的一种算法。二进制只有一和零组成。比方说吧,你上一年级时一定听说过“进位筒”&“数位筒”吧!十进制是个位上满十根小棒就捆成一捆,放进十位筒,十位筒满十捆就捆成一大捆,放进百位筒……二进制也是一样的道理,个位筒上满2根就向十位进一,十位上满两根就向百位进一,百位上满两根……二进制是世界上第一台计算机上用的算法,最古老的计算机里有一个个灯泡,当运算的时候,比如要表达“一”,第一个灯泡会亮起来。要表达“二”,则第一个灯泡熄灭,第二个灯泡就会亮起来。随着科技的发展,二进制已经被“八进制”、“十六进制”取代了。
2:
二进制的运算:
①:与运算:& :
两位全为1,结果才为1;
eg:51&5即0011 0011 &0000 0101=0000 0001
特殊用法:
清零:如果想将一个单元清零,即将其全部二进制为0,只需与一个二进制位为0的数值相与;
取一个数值中的指定位:找一个数,对应X要取的位,该数的对应位为1,其余为零,次数与X与运算,即可得到X 中指定位;
Eg:设X=10101110,取X的低四位,用X&0000 1111=0000 1110
②:按位或:|
只要一个位=为1,结果就为1
eg:51|5 即0011 0011 | 0000 0101=0011 0111
特殊用法:用来对某些数置为1;
eg:将X=10100000的低四位置1,用X|0000 1111=1010 1111
③:异或运算: ^
不同为1,相同为0;1^1=0;0^0=0;1^0=1;0^1=1
特殊用法:使特定位翻转;
与0异或运算,保留原值;
两个变量交换值的方法;
5^3=6 即101^011=110
5^6=3 即101^110=011
6^3=5 即110^011=101
④:取反运算:~
0->1;1->0;
⑤左移运算:<<
将一个运算对象的各二进制位全部左移动若干位,左边的进制位丢弃,右边补0;
eg:2<<1=4 即 10->100
⑥右移运算:>>
将一个运算对象的各二进制位全部右移动若干位,右边的进制位丢弃,左边补0;
eg:4>>1 即100>10
⑦无符号右移运算 >>>
各个位向右移动指定位数,右移后左边空出的用0来填充,右边丢弃
eg:-4>>>2
1111011->0011110
⑧ 反码:原码取反
补码: 反码+1
eg:原码:00001110 反码:11110001 补码:11110010
负数就是用补码来表示的,所以知道补码可以求助一个负数,步骤如下:
1:先减一,2:取反,3:取负
3:进制在JDK中的转换
十进制转二进制方法:
toBinaryString(int );
十进制转八进制方法:
toOctalString(int);
十进制转十六进制方法:
toHxeString
其他进制转十进制方法:
Integer.parseInt(“对应进制数”,int(对应目标进制));
二进制转十进制方法:
Integer.parseInt(“100101”,2);
4:java中的进制
小面加个视频,供参考点击看看视频
- 二进制的一些知识
- 二进制的一些知识
- 二进制的一些操作
- 二进制的一些题
- 二进制的一些
- 一些知识概念,十进制、八进制和二进制转换
- 一些二进制数的特性
- 二进制的一些小问题
- 二进制负数的一些问题
- 关于二进制的一些总结
- .net的一些知识
- 环境变量的一些知识
- 内存的一些知识
- 一些java的知识
- XML的一些知识
- foreach的一些知识
- dll的一些知识
- 哈希表的一些知识
- 原生php mysql 查询出数组,为什么只查询出一条数据,封装的phpmysql类
- Linux设备树解析
- [2017.11.04]数组高级&arrays&类
- 浅谈人工智能:现状、任务、构架与统一 | 正本清源(看完有新认知)
- Jzoj5451【NOIP2017提高A组冲刺11.4】Genocide(待补充)
- 二进制的一些知识
- linux常用指令[日常笔记]
- wxWidget教程(8)——字符串与转换
- 小结 | C++(二)| 默认成员函数、this指针
- OpenCL版Caffe安装教程
- Visual Studio 2015开了个小玩笑
- 设计模式(4)——原型 Prototype
- Java并发编程:阻塞队列
- A