负数的原码和反码,补码
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
负数的原码和反码,补码
正数的原码,补码,反码相同,正数⽤原码表⽰,负数⽤补码表⽰,负数⽤如果也⽤原码表⽰,表⽰范围就只有255个数 -128⽆法表⽰.数据的取值范围
byte类型的取值范围:有符号的[-128,127] ⽆符号的[0,255]
对于有符号的数据类型来说:最⾼位为符号位 0 为正数,1为负数
例如:5 表⽰为 0000 0101
-5表⽰为(原码):1000 0101 ===> 反码:1111 1010 ===> 补码:1111 1011
-128 的原码,反码,补码:
-128 补码1000 0000 (1111 1111(反码) + 1 = 1000 0000,这⾥实际上真正相加的是1111 1111后⾯的7位,第1位是符号位始终不会变,所以,当进到第8位的时候,溢出了,会被舍弃)
数据类型强制转换
int a = 256 ; //1 0000 0000
byte b = a ; //去⾼位得到 0000 0000
//b=0
// a=255时 1111 1111 对于byte来说是负数这是⼀个负数的补码 ===> 原码: 1000 0001 b= -1
在java中⼤数据强转位⼩范围数据类型:去⾼位
浮点型转为整型:去⼩数位,再去⾼位。