首页
学习
活动
专区
圈层
工具
发布

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的无符号字节。这个时候要注意代码应修改为: ? 一个小问题,重在积累。

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

    android Kotlin int类型和Long类型转换

    大家好,又见面了,我是你们的朋友全栈君。 在Kotlin开发中,即使Long类型较大,int类型的数值也不会自动转换为long类型。这与Java处理数字转换的方式不同。...例如; 在Java中 int number1 = 102; long number2 = number1; //有效代码 这里,number1类型的 int 值自动转换为类型long,并分配给变量number2...在Kotlin, val number1:Int =102 val number2:Long = number1 //错误:类型不匹配。...虽然Long的大小大于Int,但Kotlin不会自动将Int转换为Long。 相反,Kotlin为了避免意外而确保其安全性,需要 toLong() 显式使用(转换为Long类型 )。。...val number1:Int =102 val number2:Long = number1.toLong() 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    2.4K40

    Mysql中int和varchar类型

    int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int           -------     int...int(M) 在 integer 数据类型中,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。 在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。...和数字位数也无关系, int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。 上面几种类型的存储范围见下图: 如何计算一个字节能够存储的整数位数?...负数:从1 000 0000到1 111 1111(-(2^7-1)=-127) 负数在计算机中用补码表示-0的补码为0000 0000与+0的表示一致,所以用0000 0000表示+0和-0。

    2.6K10

    java把string转int类型_java把String类型转换为int类型的方法

    java把String类型转换为int类型的方法 发布时间:2020-08-20 14:32:03 来源:亿速云 阅读:73 作者:小新 这篇文章将为大家详细讲解有关java把String类型转换为int...本篇文章就给大家介绍java把String类型转换为int类型的两种方法,让大家了解String类型如何可以转换为int类型,希望对你们有所帮助。...str和一个值为100的int类型的整型变量inum ;使用parseInt()方法,把变量str 作为其参数,在解析后把整数值返回给int类型变量inum2;最后输出整型变量“inum”、“inum2...你会看到像这样的编译错误: 2、Integer.valueOf(String)方法 valueOf()同样是Integer包装类的一个方法,可以将String类型的值转换为int类型的值。...这和parseInt()方法相似,它们转换后的输出的结果是相同的。

    7.8K10

    int和int32的区别_int是多少位的

    大家好,又见面了,我是你们的朋友全栈君。 大家有没有写了很久代码,还不知道这个Int8,Int16, Int32, Int64有什么区别呢?或者是为什么后面的数字不一样呢?...先来扫盲一下计算机存储单元,   在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。...各种存储设备存储容量单位有KB、MB、GB和TB等几种 计算机的基本的存储单元有:   位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。...而Int8,Int16,Int32,nt64,后面的数字就代表这个数据类型占据的空间。 Int8, 等于Byte, 占1个字节.  ...Int16, 等于short, 占2个字节. -32768 32767   Int32, 等于int, 占4个字节. -2147483648 2147483647   Int64, 等于long

    3.9K20

    mysql的数据类型int、bigint、smallint 和 tinyint取值范围

    int 的 SQL-92 同义字为 integer。 smallint 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。...tinyint 从 0 到 255 的整型数据。存储大小为 1 字节。 注释 在支持整数值的地方支持 bigint 数据类型。...但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。...在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。...SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。

    4.9K31

    const int *p 和 int *const p的区别

    在 C++ 中,const int *p 和 int *const p 是两种不同的指针声明方式,它们的核心区别在于 const 修饰的对象不同,导致指针的行为不同。...以下是详细对比: 1. const int *p(或 int const *p) • 含义: • 指针 p 可以指向不同的内存地址。 • 不能通过 p 修改其指向的数据(数据是常量)。...组合形式:const int *const p • 含义: • 指针 p 的地址不可变。 • 也不能通过 p 修改其指向的数据。...实际应用场景 const int *p: void printData(const int *arr, int size) { // 保证函数内不会修改 arr 指向的数据 for (int...ptr = buffer; // ptr 始终指向 buffer 首地址 *ptr = 1; // 允许修改数据 掌握 const 与指针的组合使用,能有效提升代码的安全性和可读性

    21400

    MySQL的int (10) 和 int (11) 的区别

    mysql 中整数数据类型 不同类型的取值范围 不同数据类型的默认显示宽度 显示的宽度跟负号没有关系,它只在人工设置了 ZEROFILL 属性有效。...,经过以上实验得到结论: 显示宽度整数类型的取值范围是无关的。...如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。 同理,所以 int (10) 和 int (11) 无任何区别,就是显示宽度不同。...Mysql 可以为整数类型指定宽度,例如 INT (11),对大多数应用这是没有意义的:他不会限制值的合法范围,只是规定了 Mysql 的一些交互工具,如 Mysql 命令行客户端,用来显示字符的个数。...对于存储和运算来说, INT (1) 和 INT (8) 是相同的。 是的,设置自动填充的时候用来显示补充0有点 用而已

    2.4K30

    还分不清int(5)和int的区别?

    记得刚开始使用mysql的时候,一直不太理解mysql数据类型括号里面的值,如int(5),有一次同学问了我一个问题。...我觉得对于刚学习mysql的人来说,或者甚至工作了几年的人来说,对于int(5),这个5的含义说不出来的大有人在,下面我们就来解释一下。 int(5)中的5的意思是显示宽度,显示宽度又是什么意思呢?...,按int范围内的值正常显示。...由此我们可以看出,其实int(5) 和 int并没有什么区别,他们之间要有区别,还得建立在设置ZEROFILL的基础上,如果不设置ZEROFILL,那么两个没区别 不过你可能会疑惑了,既然使用了ZEROFILL...` 下面我们看一下mysql整型的种类和取值范围,有符号位的最小值为0,无符号位的最小值为负数,并且最小值的绝对值加上最大值等于有符号位的最大值,公式 |min| + max = UNSIGNED

    1.7K20

    int和int32的区别_int float double char区别

    大家好,又见面了,我是你们的朋友全栈 Java中没有Int32,Int64,,只有int,short,long Java中int就代表Int32 ,short就代表Int16,long就代表Int64...的别名,是等价的,short,long同理也是别名 详解Int32 为什么Int32 就等于 int, 很简单,在VS中写 int a=1; 选中a , F12转到定义就是System.Int32....但是一共还是能存储2^32次方 既42,9496,7296个数,因为有正负数,其实一样的,还是2的32次方个数 如图: 所以Int16和Int64也是同理的。...,Uint64等表示 跟上面同理 ushort =UInt16 uint =UInt32 ,0 ~ 4364967295 ulong =UInt64 UInt32和Int32一样 ,也是代表一共能存储...2^32次方,一共有42,9496,7296个数 但是因为只有正数和0,所以最大值为4364967295, 既2^32-1,-1是因为0占了一个数 溢出会如何 更进一步,尝试Int32 a=Int32

    2.8K50

    iOS 和 swift 中常见的 Int、Int8、Int16、Int32和 Int64介绍「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 经过一天的敲代码,小蜜蜂我已经也是人困马乏了。 喂喂喂,蜜蜂,哪来的“马”啊? 额。。。比喻!比喻!比喻!懂不懂?...哈哈哈 说完了上面的这些,那今天继续说说我的一点点滴事情,那就是如题目所说的Int、Int8、Int16、Int32和 Int64介绍 会不会有很多人在 Xcode 里面敲着代码的时候,突然看到提示或者其他地方...Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于long, 占8个字节.... -9223372036854775808 9223372036854775807 Int8 ,占用1个字节 如下图所示:(其他的以此类推) 还有需要特别说明的是在 Xcode 中Int的默认值是...64bit 的,而 Int64也是64bit ,如下图所示: 说完上面的内容了,那么顺便附录一个关于介绍 bit 和 byte 介绍和区别的链接 http://wenku.baidu.com/link

    4K20

    详解 mysql int 类型的长度值问题

    秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储值的最大宽度吗?...所以我在网上查阅了一些资料, 也仔细的看了 mysql 手册关于 int data type 的说法. 以下是每个整数类型的存储和范围 (来自 mysql 手册) ?...每个整数类型的存储和范围.png 表格一共有四列分别表式: 字段类型, 占用字节数, 允许存储的最小值, 允许存储的最大值....我们拿 int 类型为例: int 类型, 占用字节数为 4byte, 学过计算机原理的同学应该知道, 字节 (byte) 并非是计算机存储的最小单位, 还有比字节 (byte) 更小的单位, 也就是位...计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 那么根据 int 类型允许存储的字节数是 4 个字节, 我们就能换算出 intUNSIGNED(无符号) 类型的能存储的最小值为

    4.5K20
    领券