2 huanxuan163 huanxuan163 于 2016.09.06 11:44 提问

请问字节数组跟整形数组有什么区别?

byte[] a={'w',1,1,1};
for(byte b:a){
System.out.println(b);
}
这样子输出的都是整数
那么这个字节数组跟整形数组又有什么区别呢

5个回答

hijack00
hijack00   Rxr 2016.09.06 11:51
已采纳

在内部存储上有区别,byte数组每个元素只有一个字节,而整型数组每个元素哟4个字节(由于涉及多字节,还可能存在字节序问题)。此外,byte类型和整型表示的整数范围是不一样的。

u010575396
u010575396   2016.09.06 11:52

byte数组里面的数字最大127也就是 1111 1111 8位二进制 而int占了4个byte的空间
所以最大能表示 1111 1111 1111 1111 1111 1111 1111 1111的二进制数。请给我好评

of214
of214   2016.09.06 12:47

一个byte是一个字节,一般的整形int是4个自己,占用内存不同,存储的数据长度不同,可以看下这篇文章http://58coding.com/article/detail/24633146704146387

kingLeeST
kingLeeST   2016.09.06 20:29

byte类型大小只有一个字节,而int类型是4个字节的,显然当你表示的数大于byte的最大值的时候就会出问题了

apple_5
apple_5   2016.10.17 16:43

虽然输出的是整数,那是因为在byte的范围-127-128之间(因为byte占一个字节,8位),
当单个大于128时,使用字节数据就会报错了(而使用int不会报错,因为占4个字节,32位)。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java中整形和byte数组相互转换,支持正负数
/** * 字节数组转int,适合转高位在前低位在后的byte[] * * @param bytes * @return */ public static long byteArrayToLong(byte[] bytes) { ByteArrayInputStream bais = new ByteArrayInputSt
整形数组/字符数组/字符串的区别
一,整形数组与字符数组的区别 、 二,字符数组与字符串的区别 C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。 定义: char c[10]   字符型与整型互相通用,因此 int c[10] 也可以定义字符数组。但由于两种类型分配字节不同, 用整型来定义会浪费空间, 另外
有关String.getBytes()和String.tocharArray()的区别 字节数组和字符数组的区别
String.getBytes()是将字符串转化为一个字节数组。而String.toCharArray()是将一个字符串转化为一个字符数组。 例如:byte a[] ="国庆60周年".getBytes();     byte b[]="国庆60周年".toCharArray(); 那么字节数组和字符数组有什么区别呢? 字节输入流和输出流的read和write方法使用字节数组读写数据,即
整型int和字节数组byte相互转换
<br />public class Test { public static void main(String args[] ) { int i = 212123; byte[] b = toByteArray(i, 4); //整型到字节, System.out.println( "212123 bin: " + Integer.toBinaryString(212123));//212123的二进制表示 Syst
C#--整型与字节数组byte[]之间的转换
using System; int  i = 123; byte [] intBuff = BitConverter.GetBytes(i);     // 将 int 转换成字节数组 lob.Write(intBuff, 0, 4); i = BitConverter.ToInt32(intBuff, 0);           // 从字节数组转换成 int double x
整型变量(int)与字节数组(byte[])的相互转换
// int2byte.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include /* #define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8)) #define MAKEL
字符串压缩程序,即整型数存入字符数组
字符串压缩程序,即整型数存入字符数组
c# byte数组转换 8位有符号整数 16位有符号整数 32位有符号整数
byte数组   byte[] aa = new byte[] { 0xF8, 0x66, 0x55, 0x44 }; 1.转换成8位有符号整数   sbyte sb = (sbyte)aa[0]; 2.转换成16位有符号整数   Int16 int16 = BitConverter.ToInt16(aa, 0); 3.转换成32位有符号整数   Int32 int32 = BitC
字节组和整形之间的转换
C#里整型占用4字节长度,要用长度为4的字节数组存储,但要把一个小于16777215的整型存储到3个字节数组的快速方法可以采用如下方法:int a = 999999;int b = 0;//实现整数到3字节数组的转换byte[] mytest = new byte[3];mytest[0] = (byte)(a & 0xff);mytest[1] = (byte)((a
QT中QByteArry数组和int数组的相互转化
      本人最近因为项目新学QT,需要在QT上搭建个可以发送16进制显示的二进制数组的TCP通讯。以前的开发平台是C#,这种数组只要用byte数组就可以,显示方便。如今转到C++平台,面对满是指针的调用不知所措。QT中TCP通讯网上就很多了,这里不再赘述。我们要说的是在:QByteArry    Arry=TCPSoket-&amp;gt;readAll();获得的的是QByteArry数组,其显示的...