首页
学习
活动
专区
工具
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.6K50
您找到你想要的搜索结果了吗?
是的
没有找到

java string类型转换成int类型(string怎么强转int)

1.问题思考: 需要明确的是String是引用类型int是基本类型,所以两者的转换并不是基本类型间的转换,这也是该问题提出的意义所在,SUN公司提供了相应的类库供编程人员直接使用。...result : -result; } 加红源码如下: public static int digit(char ch, int radix) { return digit((int...* @see Character#forDigit(int, int) * @see Character#isDigit(int) * @since...4.自己动手,丰衣足食: 思路: 化整为零 -> 将引用类型的String分解为char; 逐个击破 -> 进本数据类型之间的转换Character.digit(ch,radix) / Character.getNumericValue...//数值 int len = s.length(); int indexEnd = len - 1; //控制由右及左取字符(数字) int indexBegin

1.7K20

str 数字强制int

str[i] 数字强制int型 X=(int)(str[i]-48);程序标注“将x转换成int型。”我不明白为啥减掉48,str是char型数组!...这样正好是char型减去48就是它对应的int值 不过这样写不好理解,直接写成str[i]-‘0’就好。...如果str里面存放的是数字字符的话就是转成其数值类型 比如说str[i]是’1’,其实ascii码值为0x31,而’0’的ascii码是0x30,用str[i]-'0’就得到了1 c语言中单引号是什么意思...那输出的结果是ASCII码中对应的字符; 双引号一个字符或几个字符,代表是一个字符串 双引号里面的是字符串 而单引号里面的代表字符 朋友 你可以这样理解 只要是在双引号里面的不代表任何表达式的意义 假如 int...a=10 cout<<“a”; 这是用 双引号 它在屏幕上就是 a 而 int a=10 cout<<a; 这个a就代表表达式a=10在屏幕上是10 而int a=10 cout<<‘a’;将会是65

1.3K10

INT类型知多少

前言: 整型是MySQL中最常用的字段类型之一,通常用于存储整数,其中int是整型中最常用的,对于int类型你是否真正了解呢?本文会带你熟悉int类型相关知识,也会介绍其他整型字段的使用。...我们拿int类型为例: int类型, 占用字节数为4byte, 学过计算机原理的同学应该知道, 字节(byte)并非是计算机存储的最小单位, 还有比字节(byte)更小的单位, 也就是位(bit),一个位就代表一个...计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 那么根据int类型允许存储的字节数是4个字节, 我们就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0,...本着最小化存储的原则,当然是能选TINYINT不选SMALLINT,能选MEDIUMINT不选INT了,不过一切都要满足业务的前提下尽量选取占用字节更少的类型。...对于确定只存储正整数的字段,可以加上unsigned属性,这样会使存储范围更大,比如当字段有AUTO_INCREMENT属性时,我们可以为int类型加上unsigned属性。

82520

将char转换成int_c语言中int转char

那么如果问题是 char a = -2; int b = a; //value of b is ? 这样的问题呢?...因为在一些编译器下会进行符号位扩展,直接保留符号,将a看作signed char, b的值会是-2, 但是在一些编译器下,直接屏蔽了符号位扩展,将a先转换成unsigned char,然后再转换成int...这时候如果我们还想拿到值为-2的int型变量,而且要保证在不同的编译环境下都可以得到值相同的变量,要怎么办呢?...一个很简单的解决方案就是在类型装换后手动加入判断 char a = -2; … int b = a; if(b > 127) b -= 256; 经过这样处理,0~127 的范围内,char 和 int...是通用的,-1~-128 在转换成int时如果被去掉了符号位扩展,可以通过减去256来还原成有符号数。

1.4K30
领券