常用的进制
(1)基本概念
日常生活中采用十进制来表示整数 ,逢十进一
计算机采用二进制来描述整数,逢二进一
八进制和十六进制等....
(2)十进制和二进制之间的转换(重点掌握)
a.正十进制转二进制
<1>除二取余法,让十进制整数不断的除以2取出余数,直到商为0时候将余数逆序排序
<2>拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重则在下面写1否则写0即可
20----16+4
2^4 2^3 2^2 2^1 2^0
16 8 4 2 1
1 0 1 0 0
b.正的二进制转换为十进制
<1>加权法,让二进制的每个数字乘以当前位的权重再相加即可
如:0010101 --- 21
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1
1 0 1 0 1
c.负十进制转换为二进制的方式
<1>将绝对值转换为二进制,再进行按位取反加1
如: -20
-20的绝对值转换为二进制:0001 0100
按位取反: 1110 1011
再加一: 1110 1100
d.负二进制转换为十进制的方式
1.先进制按位取反再加1,然后转为十进制整数后添加符号即可
如:1110 1100
按位取反 : 0001 0011
再加一: 0001 0100
转换为十进制:20
添加符号: -20
总结:
再计算中采用二进制序列中的最高为(最左边)代表符号为,使用1代表负数,0代表非负数
(3)二进制和八进制之间的转换(熟悉)
a.二进制转换为八进制的方式
将每3为二进制合并为一位八进制,并使用0作为前缀代表八进制
如:
011 001 (二进制) ----- 032(八进制)
011 101 100 (二进制)---- 0354(八进制)
b.八进制转换为二进制的方式
将每一位八进制拆分为三位二进制,并使用0b最为前缀带二进制(jdk1.7新特性)
如:
075(八进制) ----> ob111 101 (二进制)
(4)二进制和十六进制之间的转换(熟悉)
a.二进制转换为十六进制方式
将每四位二进制合并为一位十六进制,并使用0x作为前缀代表十六进制
如:
1010 0011(二进制) ---> 0xa3 (十六进制,使用a~f代表 10~15之间的整数)
b.十六进制转换为二进制的方式
将每一位十六进制拆分为四位二进制,并使用0b作为前缀代表二进制
如:
0x8c(十六进制) ---> 0b 1000 1100(二进制)
单个字节代表的整数范围
在计算中单个字节表示8位二进制,描述的整数范围是:
对于非负数来说,描述范围:0000 0000 ~ 0111 1111 =>
0000 0000 ----> 0
0111 1111 ----> 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
----> 64 32 16 8 4 2 1
---->127
对于负数来说 描述的范围 :1000 0000 ~ 1111 1111
1000 0000 = 按位取反 0111 1111
再加1:1000 0000
= 转换位十进制整数 128
= 添加符号 -128
1111 1111 => 按位取反 0000 0000
=> 再加1: 0000 0001
= 转换位十进制整数 1
= 添加符号 -1
综上所述:
对于单个字节所能描述的十进制整数范围 : -128 ~ 127
Java中Scanner实现输入
Scanner是Java中用于实现从控制台读取用户输入的类。
使用步骤
1.导入包
import java.util.Scanner;
2.创建Scanner对象
Scanner input = new Scanner(System.in);
3.调用Scanner对象的方法,实现读取
方法名称 说 明
next() 查找并返回来自此扫描器的下一个完整标记,返回一个字符串
nextLine() 返回Enter键之前的所有字符
hasNext() 判断扫描器的输入中是否包含下一个标记
nextByte() 将输入的下一个标记扫描为byte
nextShort() 将输入的下一个标记扫描为short
nextInt() 将输入的下一个标记扫描为int
nextLong() 将输入的下一个标记扫描为long
nextFloat() 将输入的下一个标记扫描为float
next()和nextLine()区别
next()
不包含有效字符前的空格
在输入有效字符之后,将其后输入的空格
键、Tab键或Enter键等视为分隔符或结束符
nextLine()
包含有效字符前的空格
结束符只是Enter键