首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >int类型和byte类型的强制类型转换

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

作者头像
用户1148394
发布于 2018-01-09 08:17:19
发布于 2018-01-09 08:17:19
3.1K0
举报
文章被收录于专栏:余林丰余林丰

今天在读《Java网络编程》这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方。这个地方有点细节,不过就应该把这种细节把握住。

情况是这样的,讲到InputStream的抽象方法read时,说到read返回一个int型,但实际是一个byte型的数据。这点从API也能考证。如图:

那么问题来了,int占4个字节,byte占1个字节,我们循环读取的时候将int型数组强制类型转换成byte时,会发生什么情况呢?代码如下:

1个字节占8位,既然实际返回的是byte类型的数据,那么强制类型转换int型截取低8位,对数据也不会造成影响。问题就出现在,如果再从byte型转换成int型呢?代码如下:

此时,j输出为-106。

这是因为在int强制转换为byte型数据时,会产生一个-128~127的有符号字节,而不是read方法返回的0~255的无符号字节。这个时候要注意代码应修改为:

一个小问题,重在积累。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言的数据的强制类型转换
       强制类型转换算是C语言中常见常考的一项内容,如对于类型处理不好,将会产生错误结果。对于某些类型的转换编译器可隐式地自动进行,不需人工干预,称这种转换为自动类型转换;而有些类型转换需要编程者显式指定,通常,把这种类型转换称为强制类型转换
Twcat_tree
2022/11/30
1.4K0
C语言的数据的强制类型转换
as和强制类型转换的区别
 之前一直以为as就是强制类型转换,只是as是AS3中新的语法,之前用在有继承关系的对象之间的转换也无甚区别,但是今天却让我领悟到了它俩之间的区别。
高爽
2022/05/07
1.1K0
PHP中的强制类型转换
学过静态语言开发的朋友对类型转换不会陌生,比如Java、C#、C++等。静态语言的好处就是变量强制必须指定类型,这也是编译的要求,所以大部分编译型的语言都会有强制变量类型的要求。而PHP据说也会在PHP8中加入JIT实现编译功能,并且在7.4中就会引入变量声明时的类型指定。下面我们先看看目前PHP中的参数类型及返回值类型的使用。
硬核项目经理
2019/12/10
5.2K0
python中的强制类型转换
python内提供了几种称为强制类型转换的函数,可以将一个变量的类型强制转换为另一种类型。比如,整型->浮点型,列表->元组。
matinal
2023/10/13
6470
2.2 C++强制类型转换
在C++的表达式中,不同的数据类型会自动地转换类型进行运算,但有的时候也需要程序员自己进行强制类型转换,将某个表达式转换成自己所需要的数据类型。
小林C语言
2020/10/30
8060
自动类型转换、强制类型转换、作用域、整型表数范围
本文介绍了Java中的类型转换,包括自动类型转换和强制类型转换,以及字符串与基本类型的连接运算。
CN_Simo
2017/12/26
9490
自动类型转换、强制类型转换、作用域、整型表数范围
多用as少用强制类型转换
在 C# 中存在一个名叫静态类型检查的机制,这个机制可以让编译器帮助我们把类型不服的用法找出来,从而使得应用程序在运行期间加少一些类型检查的操作。但是有时候我们还是需要进行运行期类型检查,比如我们在设计框架时将方法的参数类型定义为 object ,那么这时我们就有很大的可能需要将 object 类型的参数先转换为其他类型。我们进行转换时会有两种方法可以使用:一种是强制类型转换,这种方法可以绕过编译器的类型检查,另一种是先通过 is 判断操作是否合理,是否可以转换,然后再使用 as 运算符进行转换,或者使用强制类型转换。下面我们就来讲解一下为什么多使用 as 少使用强制类型转换。
喵叔
2020/09/08
1.7K0
Java之——自动类型提升、强制类型转换
Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性
CODER-V
2023/03/04
1.1K0
Java之——自动类型提升、强制类型转换
【原创】JAVA数值类型强制类型转换扩展
 经常需要将一些数值类型转换为另外一种数值类型。下图给出了数值类型之间的合法转换。
零点
2023/10/18
2720
【原创】JAVA数值类型强制类型转换扩展
关于PHP数组Key的强制类型转换
PHP是弱类型语言,就像JavaScript一样,在定义变量时,不需要强制指定变量的类型。同时,PHP又有着强大的数组功能,数组的Key即可以是普通的数字类型下标,也可以是字符串类型的Hash键值,那么,当一个数组的Key同时拥有字符串和数字时,会产生什么情况呢?
硬核项目经理
2019/11/19
2.7K0
C语音之基本数据类型转换
介绍:当 C 程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。
兮动人
2021/07/21
6220
C语音之基本数据类型转换
C++ 中的隐式类型转换与强制类型转换详解
在 C++ 中,类型转换是一个非常重要的概念,涉及从一种数据类型向另一种数据类型的转换。本文将从 隐式类型转换 和 强制类型转换 两个方面详细探讨它们的行为和注意事项,特别是高位和低位的处理。
码事漫谈
2024/12/20
5150
C++ 中的隐式类型转换与强制类型转换详解
【说站】java强制类型转换的使用
2、如果试图将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。
很酷的站长
2022/11/24
8990
【说站】java强制类型转换的使用
Java基础-数据类型转换
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/11/27
4330
Java之基本数据类型转换
文章目录 基本数据类型转换 1. 自动类型转换 2. 自动类型转换注意和细节 3. 强制类型转换 4. 强制类型转换细节说明 5. 基本数据类型转换-练习题 基本数据类型转换 1. 自动类型转换 /
兮动人
2021/06/11
6620
Java之基本数据类型转换
【前端】:类型与强制类型转换
在很多 JavaScript 书籍中强制类型转换被说成是危险、晦涩和糟糕的设计。但对于不懂的地方我们应该迎难而上,知其然并且知其所以然,不会因为种种传言就退避三舍。
WEBJ2EE
2020/02/19
1.1K0
C++强制类型转换
  C++中的强制类型转换虽然兼容C语言中的强制类型转换,但是不建议在C++中使用C语言风格的强制类型转换。C++中的强制类型转换共有4种:static_cast,dynamic_cast、const_cast、reinterpret_cast.
全栈程序员站长
2022/07/14
1.5K0
【Java】数据类型转换入门
一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?
陶然同学
2023/02/27
2980
【Java】数据类型转换入门
C语言编程—强制类型转换
强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示:
芯动大师
2023/10/14
4160
C语言编程—强制类型转换
Java强制类型转换异常
(2) 说明我文件夹modle里面的Question类,不能转换成com.core.entity文件里面的question类。
算法与编程之美
2023/01/03
2K0
Java强制类型转换异常
相关推荐
C语言的数据的强制类型转换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档