《Android游戏开发详解》——第1章,第1.4节关于位的一切(位和字节的简单介绍)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

《Android游戏开发详解》——第1章,第1.4节关于位的一切(位和字节的简单介绍)

简介:

本节书摘来自异步社区《Android游戏开发详解》一书中的第1章,第1.4节关于位的一切(位和字节的简单介绍),作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 关于位的一切(位和字节的简单介绍)
Android游戏开发详解
在我们继续深入之前,值得先细致地介绍如何具体把值存储到变量中。我前面提到,不同的基本数据类型具有不同的位大小。例如,一个int有32位而一个long有64位。你可能会问,那么,到底什么是位?

位(bit)是一个二进制位的简称。换句话说,如果你有一个只有0和1的二进制数,每个数字就是1位。达到8位的时候,例如,(10101001),你就有了1字节。

对于位,你需要记住的一点是:拥有的位越多,所能表示的数值也越多。为了说明这一点,让我们问一个问题。十进制的1位能够表示多少个数字?当然是10个(0,1,2,3,4,5,6,7,8和9)。两位呢?100个(00,01……99)。我们看到,每增加一个位数,都会使得我们所能表示的数值增多到原来的10倍。对于二进制数字来说,也是如此,只不过每次增加一位,所能表示的数值的数量是原来的两倍。

在计算中,位是很重要的,因为我们所操作的机器是由细小的电路组成,而这些电路要么是开,要么是关。数据表示的挑战,完全由此而引发。我们不能使用这些电路来直接表示“hello”这样的单词。我们必须使用任意某种系统将单词“hello”和某些电路的开关组合联系起来。

这就是我们应该了解的和变量相关的知识。通过声明一个新的变量,我们在内存中分配了特定数目的位(根据声明的类型),并且将某些数据的一个二进制表示存储起来,以便随后使用。

在数据类型之间转换
在Java中,可以将一种数据类型转换为另一种类型。例如,我们可以接受一个int值并且将其存储到一个long变量中。之所以能这样,是因为long变量保存了64位,可以很容易地容纳来自较小的类型int(32位)中的数据而不会遇到麻烦。但是,如果我们接受一个64位的long数字,并且试图将其放入到一个32位的int的“容器”中,将会发生什么呢?会有丧失精度的风险。这64位中的32位,必须删除掉,然后我们才能将数字放置到int变量中。

规则是这样的:如果从一个较小的类型转换为一个较大的类型,这是安全的。如果要从一个较大的类型转换为一个较小的类型,应该小心以避免丢失重要的数据。稍后,我们将详细介绍如何从一种类型转换为另一种类型。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章