首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

int类型和byte类型的强制类型转换

今天在读《Java网络编程》这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方。这个地方有点细节,不过就应该把这种细节把握住。...情况是这样的,讲到InputStream的抽象方法read时,说到read返回一个int型,但实际是一个byte型的数据。这点从API也能考证。如图: ?...那么问题来了,int占4个字节,byte占1个字节,我们循环读取的时候将int型数组强制类型转换成byte时,会发生什么情况呢?代码如下: ?...1个字节占8位,既然实际返回的是byte类型的数据,那么强制类型转换int型截取低8位,对数据也不会造成影响。问题就出现在,如果再从byte型转换成int型呢?代码如下: ?...这是因为在int强制转换为byte型数据时,会产生一个-128~127的有符号字节,而不是read方法返回的0~255的无符号字节。这个时候要注意代码应修改为: ? 一个小问题,重在积累。

2.7K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    int a; int* a; int** a; int (*a)[]; int (*a)(int)

    a) int a;表示一个内存空间,这个空间用来存放一个整数(int); b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间; c) int...e) int (*a)(int);表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个函数,这个函数有一个类型为int的参数,并且函数的返回类型也是int。...(可以结合函数指针一并看看......) int*p[4]------p是一个指针数组,每一个指向一个int型的 int (*q)[4]---------q是一个指针,指向int[4]的数组。...int (*q)[4]的存储结构如下: 请看以下定义: int a[2][4]={ {2,5,6,8},{22,55,66,88}}; int c[4]={5,8,9,4}; int d[3...)a:与(int&;)a_(int)-专业指导文档类资源-CSDN文库

    2.3K10

    C# int int16 Int32 Int64的介绍

    C# int int16 Int32 Int64的介绍 今天看到别人的代码中用到Int32,UInt32相关,想到自己平时用的都是int类型整数,就心生好奇的翻了一下资料: ---- Int32 值类型表示值介于...Int16 值类型表示值介于 -32768 到 +32767 之间的有符号整数。...类型 范围 大小 .NETFramework 类型 short [-2^15 , 2^15 -1] 有符号16位数 System.Int16 int 关键字表示一种整型,该类型根据下表显示的大小和范围存储值...类型 范围 大小 .NETFramework 类型 int [-2^31 , 2^31 -1] 有符号32位数 System.Int32 long 关键字表示一种整型,该类型根据下表显示的大小和范围存储值...类型是unsigned int派生出来的 int是带符号的,表示范围是:-21474 83647 到 21474 83648 uint是不带符号整形,表示范围是0到42949 67295(2^32-1)

    3.2K30
    领券