作为一个java开发人员,接触的基本都是上层的,都是以应用为主,根据业务实现功能,但今天无意间发现了一个小问题,int类型的129转成byte类型变成了-127,我知道是因为位数截取的原因,但是还没有探究过为什么是-127.经了解后得以解惑. 首先要搞清楚的是计算机对数据的存储方式,在这里有两个概念大家要清楚: 1.反码:反码就是对一个二进制数据逐个取反 如1011010的反码就是0100101. 2.补码:补码很简单,就是在反码的基础上加1,比如上面的反码是0100101,那补码就是01001…
JAVA基于位移的 int类型和tyte[]之间转换 [java] view plaincopy /** * 基于位移的int转化成byte[] * @param int number * @return byte[] */ public static byte[] intToByte(int number) { byte[] abyte = new byte[4]; // "&" 与(AND),对两个整型操作数中对应位执行布尔代数,两个位都为1时输出1,否则0. abyte[…
ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始. 不同点:1.ArrayList是集合而Array是数组:      2.ArrayList是具体类而Array是抽象类:      3.数组必须在实例化时指定元素的数量,改数量一旦确定就不可以更改了.而ArrayList扩展了这一点,当实例化时可以不指定集合元素数  …
只适合初学者 今天同事问了我不通过string类型把int类型值123589转换成int[]数组.我想了想于是写了出来,其实不难.看你小学数学学得好不好.言归正传. 先不说代码,举个列子就知道怎么玩了.在C#里1235/1000的整数是1,1235%123的余数是5.123%12余数是3,这样看是不是知道了.什么道理了? int i=123589 它的i.tostring().length是6.所以我们要用123589/100000的到它的整数1.但是这100000这怎么来呢.int的值可能会变…
今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到InputStream的抽象方法read时,说到read返回一个int型,但实际是一个byte型的数据.这点从API也能考证.如图: 那么问题来了,int占4个字节,byte占1个字节,我们循环读取的时候将int型数组强制类型转换成byte时,会发生什么情况呢?代码如下: 1个字节占8位,既然实际返回的是byte…
聊聊java基础,int值强制类型转换成byte 知识点:byte.short.char在表达式中会自动提升为int 之前做一个应用时,打印IP地址,因为是用4个byte存储的,所以打印的时候值范围是-128~127,考虑了下怎么快速转换成int值.然后今天抽空把整个完整的过程思考下,然后写下来. 首先int强制类型转换成byte,直接取低8位,这个大家可以自己试试,不管int值是多少,转化后的byte二进制与int的第八位二进制一样.所以如果int的第八位是1,转成byte就是负值,否则就是正…
实现PHP实现INT型,SHORT型,STRING转换成BYTE数组的转化: class Bytes { public static function integerToBytes($val) { $val = (int)$val; $byte = array(); //低位在前,即小端法表示 $byte[0] = ($val & 0xFF);//掩码运算 $byte[1] = ($val >> 8 & 0xFF); $byte[2] = ($val >> 16 &…
/** * 将文件转换成byte数组 * @param filePath 文件File类 通过new File(文件路径) * @return byte数组 */ public static byte[] File2byte(File filePath) { byte[] buffer = null; try { FileInputStream fis = new FileInputStream(filePath); ByteArrayOutputStream bos = new ByteArr…
import java.io.UnsupportedEncodingException;  public class ConToByte {      /**     * double转换byte     * @param  arr  byte[]     * @param  param    double   double类型的参数     * @param  index  int     */     public static void putDouble(byte[] arr, doub…
代码 /// <summary> /// 将文件转换成byte[] 数组 /// </summary> /// <param name="fileUrl">文件路径文件名称</param> /// <returns>byte[]</returns> public byte[] AuthGetFileData(string fileUrl) { using (FileStream fs = new FileStrea…