int 转换成byte 数字
来源:互联网 发布:淘宝商城双人床 编辑:程序博客网 时间:2024/06/09 17:33
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个字节还在 ,只是没有读取里面的内容而已
- 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 转换
- O2的运营商打算为Pre+更早的升级到webos2.x
- 为什么用 递归 计算“阶乘”和“斐波那契数列”是不合适的?
- FileLoad---文件上传
- XML编程
- 交互原型设计软件 Axure RP Pro 5 中文教程《转载》
- int 转换成byte 数字
- 复习1:bool类型和char数组
- java.lang.IllegalStateException: Content has been
- phonetest
- PHPMYADMIN简明安装教程 及 常用配置选项
- vc++ 菜单处理
- shell值班问题。
- C++ 工程实践(2):不要重载全局 ::operator new()
- 光源选型二(光源颜色组合、滤光及波长特性)