进制

进制:就是进位制,人们规定的一种进位方法。对于任何一种进位制,就表示某一位置上的数运算时逢X进一位,二进制就是逢二进一,八进制就是逢八进一……

进制概述

计算机的电子元件的状态:开、关。我们在表达数据的时候也是按照开关的状态来表示的。如果我们表达数仅仅使用这两种状态,那么能够表达的数据是有限的。而我们常见的数据:英文字母、数字、标点符号,这就很多了。所以仅仅两个状态时远远不够的。为了更多的表达数据,国际化标准组织规定,用8个这样的信号来表示一个数据,这个数据叫作:字节。后来就通过数字1,0来表示开和关。由这样的1/0数字组生成的数据就是二进制数据。

1KB(K)=1024B / 1MB(M)=1024KB / 1GB(G)=1024MB / 1TB(T)=1024GB

进位制越大,表示的形式就越短。Java针对整数常量提供了4中表现形式二进制、八进制、十进制和十六进制。

二进制转化为十进制有窍门(参看下图),八位二进制数中,每一位上的1对应着不同的十进制数值,加起来就是十进制数。

                            

显然二进制的数据书写起来比较长,那么怎样进行简化?以二进制数转化为八进制数为例:把二进制的数据,从右边开始,每三位一个组合,最左边不够的时候,然后用0来补足;然后分别计算出相应的十进数值,最后再把十进制的数组合起来,就是一个八进制的数据。(将二进制转化为十六进制一样的道理)

                           

不同进制的表现形式

二进制:由0,1组成,以0b开头。
八进制:由0~7组成,以0开头。
十进制:由0~9组成,默认整数是十进制。
十六进制:由0~9,A,B,C,D,E,F(大小写均可),以0x开头。

public class Test{
    public static void main(String[] args){
        System.out.println(100);     //十进制数 100
        System.out.println(0b100);   //二进制数(javac编译不会报错,集成开发环境可能报错) 4
        System.out.println(0100);    //八进制数 64
        System.out.println(0x100);   //十六进制数 256
    }
}

进制的转化


        

有符号数据表示法

在计算机中,有符号数有三种表示方法:原码反码补码所有数据的运算都是采用补码进行的
为什么讲解这个知识点?

因为在计算机在操作的时候,都是采用数据对应的二进制的补码来计算的。

原码、反码和补码均分为两部分,符号位数值位

我准备用原码、反码和补码来分别表示+7和-7.
首先我们得到二进制:111
原码:就是二进制顶点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位数表示数值的大小。
反码:正数的反码与其原码相同,负数的反码就是其原码逐位取反,但是符号位除外。
补码:正数的补码与其原码形同,负数的补码是反码的末位加1.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值