黑马程序员技术交流社区

标题: 如何将布尔型的值转为二进制值 [打印本页]

作者: 小黑黑    时间: 2013-3-25 09:33
标题: 如何将布尔型的值转为二进制值
本帖最后由 小黑黑 于 2013-3-26 07:49 编辑

我学到基本数据类型的时候,突然想知道boolean型的值是不是能转为二进制的值呢?
计算机中的所有数据不都是用二进制表示的吗?
比如,byte型的6,用二进制表示是00000110
那么,boolean的两个值true和false如何用二进制的形式表示呢?

作者: 胡志超    时间: 2013-3-25 09:44
好像有个0代表false、1代表true把。这样就可以转二进制了
作者: 魏福伟    时间: 2013-3-25 09:57
---------------java虚拟机规范------------------
虽然Java虚拟机定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在
Java虚拟机中没有任何供boolean值专用的字节码指令,在Java语言之中涉及到boolean
类型值的运算,在编译之后都使用Java虚拟机中的int数据类型来代替。
---------------java虚拟机规范------------------
作者: Just_Only    时间: 2013-3-25 09:57
我考虑下的,true和false都是由字符组成的从而成为一个字符串的,是不是可以看成是这些单个的字符的组合的了?字符是单个的,而字符串是单个的或是多个的字符所组成的,每个字符不是都是有对应的二进制的,然后每个单个的字符的二进制组合后不就是这个字符串的二进制的数的。
作者: 魏福伟    时间: 2013-3-25 10:00
在Oracle公司的虚拟机实现里,Java语言里面的boolean数组将会被编码成Java虚拟机的byte数
组,每个boolean元素占8位长度。
-----------------java虚拟机规范------------------------
作者: 小黑黑    时间: 2013-3-25 13:03
胡志超 发表于 2013-3-25 09:44
好像有个0代表false、1代表true把。这样就可以转二进制了

这个好像是c语言中的哦,不过还是谢谢你呀:P
作者: 小黑黑    时间: 2013-3-25 13:03
本帖最后由 小黑黑 于 2013-3-25 13:07 编辑
系统管理员 发表于 2013-3-25 10:00
在Oracle公司的虚拟机实现里,Java语言里面的boolean数组将会被编码成Java虚拟机的byte数
组,每个boolean ...

哦,原来是这样子,谢谢你
但是如果这样的话,那么布尔型值不就能和这些类型值相互转化了吗?可是在老师讲的时候,是不能和其他基本类型值互换的啊,还是有些不明白的。
作者: 小黑黑    时间: 2013-3-25 13:05
Just_Only 发表于 2013-3-25 09:57
我考虑下的,true和false都是由字符组成的从而成为一个字符串的,是不是可以看成是这些单个的字符的组合的 ...

可能就像楼上说的吧,是将这种类型的值通过某种方式编入了虚拟中吧。
作者: Just_Only    时间: 2013-3-26 08:37
小黑黑 发表于 2013-3-25 13:05
可能就像楼上说的吧,是将这种类型的值通过某种方式编入了虚拟中吧。

我也是想想的,没有验证的,毕竟boolean的值不能改变的,也是不能用字符串的形式表示的,也不能和其他的类型相互转换的。
作者: 范鹏飞    时间: 2013-3-26 09:05
这是sun公司给的定义
boolean This data type represents one bit of information, but its "size" isn't something that's precisely defined.
这个数据类型代表一个比特的信息,但它的“大小”不是精确定义的东西.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2