JAVA基础之进制转换

关于进制

  • 所有数字在计算机底层都以二进制形式存在
  • 对于整数,有四种表示方式:

         二进制:0-1 满2进1 。以0b或0B开头

         十进制:0-9 满10进1。

         八进制:0-7 满8进1.以数字0开头表示。

         十六进制:0-9及A-F,满16进1,以0X或0x开头表示。如 0x21AF+1 = 0x21B0

JAVA基础之进制转换_第1张图片 JAVA基础之进制转换_第2张图片

二进制

  • java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认是占64位,第64位是符号位。
  • 二进制的整数有如下三种形式: 

        原码:直接将一个数值换成二进制数,最高位是符号位

        负数的反码:是对原码按位取反,只是最高位确定是1

        负数的补码:其反码+1

  • 计算机以二进制补码的形式保存所有整数(正数的原码补码反码都相同,负数的补码是反码+1)

二进制转十进制

整数二进制转换为十进制:首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。

先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到的就为十进制,比如1110转换为十进制,方法如图

JAVA基础之进制转换_第3张图片

十进制转二进制

将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就OK咧

JAVA基础之进制转换_第4张图片

二进制于八、十六进制转换

八是二的3次幂,所以将二进制的3位合并即为八进制的一位,十六是二的4次幂,所以将二进制的4位合并就是十六进制

JAVA基础之进制转换_第5张图片JAVA基础之进制转换_第6张图片

你可能感兴趣的:(java基础篇)