int类型转换byte类型
int类型转换byte类型
- 转换过程
- 原码、反码与补码的关系
- 举例
转换过程
计算机中,int类型占用4个字节,byte类型占用1个字节;
当int类型强转为byte类型时,计算机会截取最后的八位(1个字节);
由于计算机存储数据时,都是以补码的形式进行存储。
然而,我们通常看到的数却是计算机存储的补码先转换成反码,后转换成原码,再转换成十进制呈现的。
原码、反码与补码的关系
正数: 原码 = 反码 = 补码
负数: 原码取反 = 反码(符号位不变); 反码 + 1 = 补码(符号位上的进位舍弃)
举例
int a = 128,转换成二进制形式是0000 0000 0000 0000 0000 0000 1000 0000,
由于正数的原码=反码=补码,因此计算机存储的是0000 0000 0000 0000 0000 0000 1000 0000。
int a = -128,转换成二进制形式是1000 0000 0000 0000 0000 0000 1000 0000,
由于负数的原码、反码与补码的转换关系是:原码取反=反码(符号位不变),反码+1=补码;
反码:1111 1111 1111 1111 1111 1111 0111 1111
补码:1111 1111 1111 1111 1111 1111 1000 0000
因此,在计算机中存储的是1111 1111 1111 1111 1111 1111 1000 0000
int a = 128;
byte b = (byte) a; // b=-128
首先,由上述第一个例子得知,128在计算机中存储的补码形式为0000 0000 0000 0000 0000 0000 1000 0000,
此时强制转换成byte类型的数据时,计算机会自动截取最后的八位(1个字节)1000 0000,
由补码最高位为1得知,转换后的数据是一个负数,
根据负数补码求反码,我们可以得到该数的反码是1111 1111,
根据负数反码求原码,可得到该数的原码是1000 0000
int类型转换byte类型相关推荐
- int类型转换String类型,String类型转换成int类型
一.int 类型转换 成String类型 定义一个int类型int i =100;//方法一:使用 i+""; String s1 = i+"";//方法二:S ...
- pythonbyte转int_Python int与byte类型相互转化
根据Python自定义的功能,使用to_bytes函数转化int类型数据为byte型,然后使用from_bytesa将byte类型数据转化为int型. def to_bytes(self, lengt ...
- int类型和byte类型的强制类型转换
今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到In ...
- byte 类型_java知识总结(九):基本类型转换
基本类型转换 自动类型转换 强制类型转换 自动类型转换 转换从低级到高级 byte,short,char-> int -> long-> float -> double 数据类 ...
- int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围
int和long类型取值范围. 1. int类型 ---------4字节(32位) ------------------------------------------------------- ...
- byte类型转换细节分析:Type mismatch: cannot convert from int to byte?出现这个报错的解决方案
面对这种问题,大家应该都有这样的疑惑,我全部都是byte类型的数据,而且两个相加也并没超过byte类型的表示范围,但是为什么会报错Type mismatch: cannot convert from ...
- *java* 在Java中给Int类型的最大值+1 ,以及int与byte之前强转的例子
1.给int最大值+1 public class Test1{public static void main(String[] args){//保存当前int的最大值,同理也有long maxValu ...
- int 和 byte 类型转换
在java中,byte类型的取值范围是-128~127. 在c/c++中,unsigned char类型的取值范围是0~255. 当使用java代码通过jni获取到c/c++的图像数据时,图像数据一般 ...
- 为什么Byte类型的运算结果要用int类型来接收
今天写程序的时候发现byte类型的数值进行运算无法用byte接收,必须是int类型的. 为什么Byte类型的运算结果要用int类型来接收? 我们给他编译一把: javac Add.java javap ...
- Java初认识--基本数据类型(int 和byte之间赋值)默认值 类型强转
Java简单介绍 Java面向对象:一个面向对象的木匠关心的制作的椅子:这个木匠干了什么事情 非面向对象的木匠关心的是所使用的工具. 狗吃粮 面向对象 吃狗粮 非面向对象 Java与c++区别: 1. ...
最新文章
- usermod命令,用户密码管理和mkpasswd命令
- 建立计算机系学生视图,实验六 视图的操作.doc
- javascript经典广告代码.rar
- CSP认证201512-1	数位之和[C++题解]:模拟、水题
- 中小企业CRM评测-客户服务_企能
- 盘点程序员必备的专业术语,值得看一看
- c++语言中break的作用,C++ break和continue用法详解
- linux gcc g++编译命令选项
- 计算机负数次幂科学表示,负数的科学计数法怎么表示
- 为Laravel的artisan指令增加bash脚本
- JAMStack-SSR/SSG 框架
- Pads logic 创建文件时发生严重错误
- 029——VUE中键盘语义修饰符
- Node进程管理工具—pm2
- 2022-7-22 最新IOS免越狱 无需USB连接 无需硬件常驻 可云控 适应大批量设备
- 悟彻菩提真妙理 断魔归本合元神
- 宁静以致远,淡泊以明志
- ipad浏览器安装java_在桌面浏览器中调试iphone、ipad等设备上的网页
- 图灵、冯诺依曼谁更牛?
- Android原生webView概述