二进制和十进制
二进制和十进制介绍
二进制只包括0和1,十进制包括0~9
二进制和十进制的转换
- 十进制转二进制:使用除以二获取余数
- 二进制转十进制:使用8421编码
例子
1 0 0 1 0 1 1 # 二进制
75 # 十进制
# ----------转换方式----------
二进制转十进制
每一个二进制位置上都是2的n次方,比如 第0位
是 20,第1位
是 21,第2位
是 22,......,所以
1 0 0 1 0 1 1
2^6 2^5 2^4 2^3 2^2 2^1 2^0
64 32 16 8 4 2 1
1x64 + 0x32 + 0x16 + 1x8 + 0x4 + 1x2 + 1x1 = 75
十进制转二进制
进制
介绍
明白了二进制和十进制之后,在理解别的进制就简单了
我们知道,二进制是逢二进一,十进制是逢十进一。
那么八进制就是逢八进一,十六进制就是逢十六进一,.....
常用的进制也就是二进制,八进制,十进制,十六进制
八进制在最后面加O表示(因为英文为Octal
),十六进制在后面加H或者下标16或者在前面使用0x表示
十六进制
要特别介绍一下十六进制
因为十六进制是在十的基础上加入了字母A–>F组成 , 分别代表0–>15
各种进制相互转换
各种进制转换为十进制
各种进制转换为十进制和二进制转换为十进制差不多,比如8进制转换为十进制,让72转为十进制
7 2
81 80
7x8+2x1 = 58
十进制转其他进制
- 对于整数部分:除N取余,逆向排列
- 对于小数部分:乘N取整,正向排列
其实也和十进制转换二进制差不多,都是使用除法和乘法,但是细节上有些不同,比如
74.45
转换为八进制
整数部分
小数部分
第一次的结果是3
第二次使用第一次剩下的小数计算,就是用0.6去计算,结果是4
那么十进制的结果就是
0.34xxxx
,这里可以取两位有效数字,那就是0.346
-->0.35
-->0.4
结果
112.40
位运算
介绍
位运算就是直接对二进制进行操作
规则
含义 | Java |
---|---|
与 | a & b |
或 | a | b |
异或 | a ^ b |
取反 | ~a |
左移 | a << b |
带符号右移 | a >> b |
无符号右移 | a >>> b |
注意,计算机中的位运算是根据补码进行的计算
与运算规则
相同位的两个数字均为1则结果为1
0 0 1 0 1 # a
1 1 1 0 0 # b
---------------------
0 0 1 0 0 # 结果
或运算规则
相同位的两个数有一个为1则结果为1
0 0 1 0 1 # a
1 1 1 0 0 # b
---------------------
1 1 1 0 1 # 结果
顺便提一嘴,假如数字n为2的幂次方数,那么
n % length == n & (length - 1)
异或运算
相同为0,不同为1
0 0 1 0 1
1 1 1 0 0
---------------------
1 1 0 0 1
取反运算
除了负数符号位,0和1全部取反
0 0 1 0 1
---------------------
1 1 0 1 0
左移
丢弃最高位,低位用0补齐
左移一位相当于乘2,但一般认为左移比乘法快,因为这是直接针对底层的操作
1 1 0 0 1 0 0 # 左移2
---------------------------
0 0 1 0 0 0 0 0 0
比如这里,一开始的结果是100
左移之后变为了400
如果移到了符号位,那么数值正负将会改变
右移
丢弃最低位,符号位不变
右移一位相当于除以2,但是一般认为右移比乘法快,因为这是直接针对底层的操作
0 0 1 0 0 0 0 0 0 # 右移2
---------------------------
0 0 1 0 0 0 0
相应的符号位不会改变
负数则在当最高位的1移到右边一位时,左边最高位再次补1
整数则在当最高位的0移到右边一位时,左边最高位再次补0
无符号右移
a >>> b就是无符号右移,忽略符号位,空位以0补齐
0 0 1 0 0 0 0 0 0 # 右移2
---------------------------
0 0 1 0 0 0 0
乍一看和右移没什么区别,但是区别是
不会保留符号位,用0补最高位
无符号右移对正数没有意义
原码 反码 补码
原码
原码就是原本的二进制
反码
反码就是原码除了符号位取反
补码
-
正数补码与原码相同
-
负数补码为反码加一
字节
8个bit(二进制)为一个字节
字节是计算机最小的存储单元
Windows下常用DOS命令
命令 | 操作符 |
---|---|
盘符切换 | 盘符: |
查看当前文件夹 | dir |
进入文件夹 | cd 文件夹 |
退出到上一级 | cd .. |
退出到磁盘根目录 | cd |
清屏 | cls |