int类型数据范围 - 学习

1.应用场景

主要用在计算机内部储存和传输。

你可能还会问:

学习二进制究竟有什么用呢?

平时的编程中,我们好像并没有使用相关的知识啊?

确实,目前的高级语言可以帮助我们将人类的思维逻辑转换为使用 0 和 1 的机器语言,

我们不用再为此操心了。

但是,二进制作为现代计算机体系的基石,这些基础的概念和操作,还是很需要了解的。

二进制贯穿在很多常用的概念和思想中,例如逻辑判断、二分法、二叉树等等。

逻辑判断中的真假值就是用二进制的 1 和 0 来表示的;

二分法和二叉树都是把要处理的问题一分为二,正好也可以通过二进制的 1 和 0 来表示。

因此,理解了二进制,你就能更加容易地理解很多计算机的数据结构和算法,也为我们后面的学习打下基础。

2.学习/操作

1. 文档

五分钟教会你任何进制之间的互相转换

进制转换:二进制、八进制、十六进制、十进制之间的转换  总体思路:先转为十进制,然后再转为目标进制

初学JAVA随记——8bit(1byte)的取值范围是+127到—128 - 吸灰 - 博客园

位(bit)、字节(byte)、字符、编码之间的关系_prdslf001001的博客-CSDN博客

字节、字、bit、byte的关系_Bobit - CSDN博客-CSDN博客_bit byte

计算机原码,反码,补码_chenchao2017的博客-CSDN博客_原码反码补码

2. 整理输出

2.1 弄清楚这个事情,首先要知道,二进制与位的概念

二进制

01010101...组成的一段数字,计算机内部[底层]使用的即二进制,包括储存和传输。

补充:

计算机使用二进制和现代计算机系统的硬件实现有关。组成计算机系统的逻辑电路通常只有两个状态,即开关的接通与断开。

二进制的发明者 是 戈特弗里德·威廉·莱布尼茨[德国数理哲学大师] 1679年发明,你说[莱布尼茨]听着有点熟悉,对,就是那个微积分公式,大名鼎鼎的[牛顿-莱布尼茨公式,又名 微积分基本定理]的提出者之一。不过他的命运结局并不好,而且与牛顿不为人知的另一面有关~

位(bit, 比特)

可以简单理解为就是0 1所谓的位置,每个就是位。

如:01010101 就是一个长度为8bit的二进制数字 ,现实中我们常用十进制表示和运算,至于进制之间的换算 ,请另行查阅资料。 

也可参见

五分钟教会你任何进制之间的互相转换  

进制转换:二进制、八进制、十六进制、十进制之间的转换  // 总体思路:先转为十进制,然后再转为目标进制

2.2 核心点

这里以Java为例,其他语言实现也大体是一样的

8bit (1byte)的取值范围是 -128 -- 127
一个byte由八个位组成,如00000000,其中,从右往左数[即从低位到高位],前7位表示数值,第8位是符号位(0为正,1为负)。

这样正负1如下:

+1 : 00000001

-1  : 10000001

最大的正数就是0 1111111,即 2^0+2^1+……+2^6=127,

最小的负数,同理,为1 1111111,即-127。

上述的描述会出现一个问题,就是0,会出现一个 +0 和一个 -0,于是规定-0为-128,这样就与计算机的补码(程序都是按补码运行的) 完美地结合在一起。 --- 到底是如何完美地,请查看计算机的原码,补码,反码

以此类推,int,short,long都可以推出他们的取值范围。

备注:

关于计算机的原码,补码,反码 见 计算机原码,反码,补码

这也是目前计算机系统底层 8 位整型数字的区间范围,所以计算机底层是通过补码来表示数字的,也只能通过补码来表示。

插入

了解到这里,我们再来看为什么 uint 类型的 255 转化为 int8 类型的值后是 -1。-- Golang中

255 是无符号正数,补码和原码都是 255,即 16 个 1 组成的机器数,转化为 int8 类型后,由于 int8 只能存放 8 位机器数,所以会截取 255 后 8 位数字,也就是 1111 1111int8 是有符号数字,第一位是符号位,所以真值是后 7 位,计算机底层通过补码表示数字,需要将其转化为补码,而这个数字又是负数,所以需要将后 7 位按位取反再 +1,也就是 1000 0001,即 -1

后续补充

...

3.问题/补充

TBD

后续补充

...

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值