Java进制之间的转换及控制台输入

常用的进制


(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键
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值