君子生非异也

导航

 

1、无符号数:其最高位的1或0,和其它位一样,用来表示该数的大小。
一个字节(1111 1111) 1111 1111=12^7+12^6+12^5+12^4+12^3+12^2+12^1+12^0=255;所以无符号的一个字节表示的数据范围是0~255 共 256个;

例如:100 无符号表示:0110 0100

 

2、有符号数:最高数称为“符号位”。为1时,表示该数为负值,为0时表示为正值。
一个字节(0111 1111) 最高位的0表示正号,0111 1111=+111 1111=+(12^6+12^5+12^4+12^3+12^2+12^1+1*2^0)=+127
一个字节(1111 1111) 最高位的1表示负号,1111 1111 =-111 1111 =-127 所以有符号的一个字节表示的数据范围是-127 到 +127 共 255个;

例如:100 有符号表示:0110  0100  //最高位0 表示 +号, 后七位才是具体数据位

例如:-100 有符号表示: 1110  0100 //最高位1 表示 -号, 后七位才是具体数据位

 

 

二、java中的基础数据类型

JAVA中没有提供无符号的基本数据类型

在 java 中byte 的范围是 -128 到127  

1、为什么有符号数的一个字节最小值是-128 

计算机存储数据是按照补码的形式,

有符号数的一个字节最大:0111 1111 =127;正数的补码等于原码     ;

有符号数的一个字节最小:1000 0000 ;反码= 1111 1111 ;补码=反码+1= -111 1111+1 =-0 ;由此可见 -0与0重复;计算机规定 -128等于-0;  

 

posted on 2020-11-10 14:16  徐知语的笔记  阅读(3317)  评论(0编辑  收藏  举报