int 转换成byte 数字
来源:互联网 发布:linux mv 覆盖 不提示 编辑:程序博客网 时间:2024/06/05 08:46
int转换为byte溢出怎么计算结果?如 int a=135 转换为 byte 要汉字描述
byte是1个字节 所以(字节型,占1 字节,表示8 位正整数,范围0 ~ 255) int是4个字节 而把int转换成byte会截取最后一个字节比如你说的135 转为2进制应该有4个字节 然后仅仅要最后一个字节最后一个字节的第一位被作为符号位135转换2进制后为10000111然后按照 补码 计算规则看一下把除了符号位之外 取反加1 变成11111001 这结果是-121
用256 减去 你所转换的数的绝对值 ,然后,加个符号(和做转换数相反的),就是结果????????
156 (int类型) 转byte为什么是-100
我算出来应该是-28156=10011100B 转换为byte为11100B=-28
问题补充:
156=10011100B 最高位为符号位 而11100B=28 故为-28
156 =0 10011100B(第一个零位符号位,表示正,当然int型数值位前面还有N个0,略去) 由于1byte为8bit 所以转换为byte,符号位被丢弃(N个0也被丢弃), 结果为1 0011100B(此时,第一位符号位为1,为负), 由于负数按补码存储,所以转换为byte之后的真值为1 1100100(由补码求原码,按位取反末位加1),即-100==============lz前面都算对了,就差最后由负数的补码求真值,因为负数按补码存储,所以最后一步很关键
Java中int转byte问题
如 byte c1 = 46; byte c2 = 95; byte c3 = (byte)(c1 + c2); System.out.println("c3=" + c3);输出结果为什么是 负100 老师说是int4个字节byte是一个字节去掉三个字节,余下哪个字节是多少就是多少。可是哪三个字节是怎么去的呢
/* 95+46=141 (00000000 00000000 00000000 ) 10001101 128 8 4 1 byte Max is 127. the first "1" is mark,so "10001101" is Complement Code. get:01110010 =64 +32+ 16 +2=(-)114 at Subtraction 1 =-115 */其实不能说是去掉3个字节,只能说在读取数据的时候只读取了最低的一个字节里的数据而已,那另外的3个字节还在 ,只是没有读取里面的内容而已
0 0
- int 转换成byte 数字
- int 转换成byte 数字
- byte转换成int
- byte转换成int
- int 转换成 byte[] (byte数组)
- int/byte/byte[]转换 c#
- string 和int 转换成byte数组
- Int类型转换成byte[4]
- byte字节转换成int类型
- Java byte转换成16进制int
- c# int byte转换
- string int byte转换
- int short byte转换
- byte[]与int转换
- java byte转换int
- int byte互相转换
- byte[] int[] short[] 转换
- byte 与 int 转换
- Oracle的pipelined函数提升数据输出性能
- ADN电话本信息的简单解析
- PopupWindow 的使用及注意事项
- 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项
- 查询oracle 数字与字符混合的列
- int 转换成byte 数字
- android 开源项目集合
- 遍历指定目录获得文件名或者文件夹名称,或者两则都要
- ngwork 工具及使用
- Hive2.1:Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException:
- 指针和const
- nt和byte数组之间的转换
- 利用gd库给图片打图片水印
- 垃圾收集器与内存分配策略