二进制 原码 补码 反码 符号位 正负数 数据类型

本文详细介绍了二进制数到十进制数的转换方法,探讨了符号位的作用及其对数值表示的影响。通过具体实例,解释了在不同情境下(有符号和无符号)二进制数的解读方式,并阐述了计算机中数据类型的存储原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.对一个二进制数 1100 1111 1100 0111  转化为十进制是多少?

如果最高位是符号位转换成十进制为 -12345, 而如果最高位不是符号位则为 53191

如何怎么判断1100 1111 1100 0111最高位是否是符号位呢?

不能判断 数据本无型,原本在人心.你想把它当做有符号就有符号,你想把它当做无符号就是无符号.它本身并没有类型区别.

2.对于 _ _ _ _  _ _ _ _ 八个bit表示的数

你认为它是无符号的,那么它可以表示0~255共计256个数字

你认为它是有符号的,那么它只能表示-128~127共计256个数字

3.计算机中存储的都是二进制  

bit(位):b,也称为比特(bit),每个二进制数字0或1就是一个位(bit).     8b(bit)=1B(byte 字节)

对于上面的问题,我们在使用前必须明确是否有符号位。

在Java中所有的数据类型都是有符号类型。其他语言有无符号位的类型

在java中约定了8种基本数据类型,其中占用的字节数如下

字节二进制位数符号位共有多少个数取值范围-最小值取值范围-最大值
byte182^7=128-2^72^7-1
short2162^15=32768-2^152^15-1
int4322^31-2^312^31-1
long8642^63-2^63-2^63-1
boolean182false(默认)true
char2162^16=6553602^16-1
float432---
double864---

正数的原码、反码、补码都一样

负数的反码 =  它的原码符号位不变,其他位取反(0 ->1 ; 1->0 );

负数的补码 = 它的反码 +1;

在计算机运算的时候,都是以补码的方式来运算的(符号为也运算);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值