J2SE - 进制的介绍、转换、位移

本文介绍了计算机中二进制、八进制、十进制和十六进制的基本概念,以及它们之间的转换规则。通过JAVA字面量展示了各进制表示方式,并详细阐述了进制转换的方法,包括整数和小数的转换。同时,文章还讨论了位移运算,包括左移、右移和无符号右移,解释了它们的运算规则及其在数值变化上的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、进制和说明

    计算机中的数值、文字、声音、图像等任何信息,最终都会转化成二进制形式后被处理、存储和传输
    二进制数的每个0或1就是一个位,位是数据存储的最小单位;8位二进制数为一个字节,字节是存储的基本计量单位
    计算机中CPU位数指的是CPU一次能处理的最大位数,例如332位处理器次最多能处理32位即4字节的数据

二、形式和规则

    二进制:用0-1表示,逢2进1
    八进制:用0-7表示,逢8进1
    十进制:用0-9表示,逢10进1
    十六进制:用0-9和A~F表示,逢16进1

三、JAVA字面量 

    二进制:前置0b/0B;int b = 0B111010; 
    八进制:前置0;int o = 072; 
    十进制:无前置;int d = 58; 
    十六进制:前置0x/0X;int h = 0x3a; 

四、进制的转换

    十进制整数转成其他进制

        把一个十进制整数转换为二进制(八进制或十六进制)整数,只需把被转换的十进制整数反复地除以2(8或16),直到商为0,所得的余数从下往上就是这个数的二进制(八进制或十六进制)表示,即“除2(8或16)取余法”
        以十进制的58为例,通过如下操作得其二进制为111010

    其他进制整数转成十进制

        把一个非十进制整数转换成十进制整数,只需把非十进制数按位置展开,用各个位置上的数乘以进制对应数(二进制2或八进制8或十六进制16)的位置次方(幂从右即个位开始往左从0依次变大;非0数的0次方都是1),再求和
        以二进制的111010为例,通过如下计算得其十进制为58

    十进制小数转成其他进制

        把一个十进制小数转换成二进制(八进制或十六进制)小数,只需把十进制的小数连续地乘以2(8或16),将得到的积的整数部分取出,再用余下的小数部分继续执行乘法,直到积中的小数部分为零或达到所要求的精度为止,取出的整数部分从上到下就是这个数的二进制(八进制或十六进制)表示,简称“乘2(8或16)取整法”
        以十进制的0.6875为例,通过如下计算得其二进制为0.1011


        

    其他进制小数转成十进制

        把一个非十进制小数转换成十进制小数,只需把非十进制数按位置展开,用各个小数位置上的数乘以进制对应数(二进制2或八进制8或十六进制16)的位置负次方(幂从左即个位开始往右从0依次变小;一个数的负次方即为这个数的正次方的倒数,相乘的积是1的两个数互为倒数),再求和
        以二进制的0.1011为例,通过如下计算得其十进制为0.6875

五、位移的运算

    左移N<<n

        将N的二进制位向左移动n个二进制位,并将已经移出的二进制位舍去,并在最右端补n个零。越往左移动越多,结果越大;左移的结果为N乘以2的n次方
        以十进制24为例,左移两位,得其结果为96
        

    右移N>>n

        将N的二进制位向右移动n个二进制位,并将已经移出的二进制位舍去,并在最左端补n个与原来高位一样的数(正数补0负数补1),越往右移动越多,结果越小;右移的结果为N处理2的n次方
        以十进制24为例,右移两位,得其结果为6

    无符号右移N>>>n

        将N的二进制向右移动n个二进制位后,舍弃移出的二进制位后在最左端始终只补0,这就是无符号移动

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值