数字149存储在地址16的字节中

时间:2016-08-12 20:04:28

标签: java memory byte bit

我正在读一本关于Java编程的书,在第一章中它说:"数字149存储在地址16和#34的字节中。 - 存储三个字符,1个,4个和9个字节可能吗?

3 个答案:

答案 0 :(得分:0)

不,java中字符的大小是2个字节。因此显然6个字节不能适合1。

我认为这本书试图询问数字149是否适合一个字节,其中是和否,无符号字节在最大值时可以保持255的值,而在2的补码(有符号)字节只能保持126的值。

Info about primitive data type

答案 1 :(得分:0)

一般情况下,一个字节是8位,可以存储0到255之间的数字。字节通常用于RAW数据处理,是数据存储在内存中的方式。存储字符或“字符串”时,您将存储表示字符序列的字节序列。

二进制字节形式的数字149是10010101

Decimal to Binary Converter

但存储字符与存储数字不同。为解决您的问题,无法在单个字节中存储字符“1”,“4”和“9”,但存储数字149是。

此外,给定字符/字符串使用的字节数很大程度上取决于您使用的编码。

Java String see .getBytes(Charset charset)

所有这些都说,Java中的一个字节是签名的。其范围从-128到+127(含)。一个字节可以存储256个唯一值。您可以将它们视为数字,单个标志,无论您想要什么。我没有OP的原始问题的上下文,但如果他们使用Java原始字节,它默认不能保持数字149.如果你在谈论8位序列,它可以。

Java Primitive Datatypes

答案 2 :(得分:0)

分别存储数字149和字符“1”,“4”和“9”是完全不同的。存储字符“1”实际上存储其ASCII值49,并且ASCII值52和57分别表示“4”和“9”。 Java中每个字符的大小为2个字节。因此,总大小为6的3个字符不能组合成一个字节。

字节数据类型只有8位,因此可以存储-128到+127的数字。这意味着一个字节的最大值(Byte.Max_VALUE)是127,并且由于149大于127,因此它不能适合一个字节,并且你必须至少使用一个短路来存储149.短路是2个字节在java。

我强烈建议您阅读有关数据类型的Java文档。它非常简短,但对于理解有关数据类型的所有内容非常有用。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html