JAVA语言:第二章 Java的基础语法_进制

一、进制的分类

· 十进制:
	数字范围:0-9
	进位规则:逢十进一
· 二进制:
	数字范围:0-1
	进位规则:逢二进一
· 八进制:
	数字范围:0-7
	进位规则:逢八进一
· 十六进制:
	数字范围:0-9、A-F(或者a-f)
	进位规则:逢十六进一

二、为什么会有八进制和十六进制

  • 为什么有?
本质上,就是生活中的十进制,和计算机世界中的二进制
因为在计算机中二进制数字太长了,在代码中去表示二进制很繁琐,
那么引入了八进制和十六进制,为了快速和简短的表示二进制
  • 进制转换
(1)十进制-->二进制
除2,倒数取余法
(2)二进制-->八进制
把二进制从最右边开始,三位一组
(3)二进制-->十六进制
把二进制从最右边开始,四位一组

三、如何表示

十进制,正常写
二进制,在数字前面加0B或0b
八进制,在数字前面加0
十六进制,在数字前面加0X或0x

四、为什么byte类型的范围是-128~127?(了解)

byte是1个字节,1个字节是8位
计算机中是使用“补码”的形式来存储数据的,为了理解/换算“补码”,人们引入“原码、反码”这两个概念。

规定:正数的原码、反码、补码三码合一;
	  负数的原码、反码、补码是不同的。
	  因为计算机中把最高位(最左边的二进制位)定为符号位,0表示正数,1表示负数。
	  
25:
	原码:0001 1001
	反码:0001 1001
	补码:0001 1001
-25:
	原码:1001 1001
	反码:1110 0110   符号位不变,其余位取反(0变1,1变0)
	补码:1110 0111   在反码上加1
	
正0: 0000 0000

正数:
	0000 0001   : 1
		|
	0111 1111		: 127
负数:补码
	1000 0001	:  补码(1000 0001)-》反码(1000 0000)--》原码(1111 1111) -127
		|
	1111 1111	:  补码(1111 1111)-》反码(1111 1110)--》原码(1000 0001) -1
	
负0:1000 0000	如果用它表示负0,就浪费了,所以用它来表示其他的数
	-127的二进制的补码:1000 0001
	1的二进制的补码:0000 0001
	
-127 - 1 = (补码:1000 0001)-(补码:0000 0001) = 补码(1000 0000) = -128
计算机中用符号位来表示正、负,就是为了底层设计的简化,让符号位也参与计算。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值