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类型相关推荐

  1. int类型转换String类型,String类型转换成int类型

    一.int 类型转换 成String类型 定义一个int类型int i =100;//方法一:使用 i+""; String s1 = i+"";//方法二:S ...

  2. pythonbyte转int_Python int与byte类型相互转化

    根据Python自定义的功能,使用to_bytes函数转化int类型数据为byte型,然后使用from_bytesa将byte类型数据转化为int型. def to_bytes(self, lengt ...

  3. int类型和byte类型的强制类型转换

    今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到In ...

  4. byte 类型_java知识总结(九):基本类型转换

    基本类型转换 自动类型转换 强制类型转换 自动类型转换 转换从低级到高级 byte,short,char-> int -> long-> float -> double 数据类 ...

  5. int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围

    int和long类型取值范围. 1. int类型 ---------4字节(32位) ​ ------------------------------------------------------- ...

  6. byte类型转换细节分析:Type mismatch: cannot convert from int to byte?出现这个报错的解决方案

    面对这种问题,大家应该都有这样的疑惑,我全部都是byte类型的数据,而且两个相加也并没超过byte类型的表示范围,但是为什么会报错Type mismatch: cannot convert from ...

  7. *java* 在Java中给Int类型的最大值+1 ,以及int与byte之前强转的例子

    1.给int最大值+1 public class Test1{public static void main(String[] args){//保存当前int的最大值,同理也有long maxValu ...

  8. int 和 byte 类型转换

    在java中,byte类型的取值范围是-128~127. 在c/c++中,unsigned char类型的取值范围是0~255. 当使用java代码通过jni获取到c/c++的图像数据时,图像数据一般 ...

  9. 为什么Byte类型的运算结果要用int类型来接收

    今天写程序的时候发现byte类型的数值进行运算无法用byte接收,必须是int类型的. 为什么Byte类型的运算结果要用int类型来接收? 我们给他编译一把: javac Add.java javap ...

  10. Java初认识--基本数据类型(int 和byte之间赋值)默认值 类型强转

    Java简单介绍 Java面向对象:一个面向对象的木匠关心的制作的椅子:这个木匠干了什么事情 非面向对象的木匠关心的是所使用的工具. 狗吃粮 面向对象 吃狗粮 非面向对象 Java与c++区别: 1. ...

最新文章

  1. usermod命令,用户密码管理和mkpasswd命令
  2. 建立计算机系学生视图,实验六 视图的操作.doc
  3. javascript经典广告代码.rar
  4. CSP认证201512-1 数位之和[C++题解]:模拟、水题
  5. 中小企业CRM评测-客户服务_企能
  6. 盘点程序员必备的专业术语,值得看一看
  7. c++语言中break的作用,C++ break和continue用法详解
  8. linux gcc g++编译命令选项
  9. 计算机负数次幂科学表示,负数的科学计数法怎么表示
  10. 为Laravel的artisan指令增加bash脚本
  11. JAMStack-SSR/SSG 框架
  12. Pads logic 创建文件时发生严重错误
  13. 029——VUE中键盘语义修饰符
  14. Node进程管理工具—pm2
  15. 2022-7-22 最新IOS免越狱 无需USB连接 无需硬件常驻 可云控 适应大批量设备
  16. 悟彻菩提真妙理 断魔归本合元神
  17. 宁静以致远,淡泊以明志
  18. ipad浏览器安装java_在桌面浏览器中调试iphone、ipad等设备上的网页
  19. 图灵、冯诺依曼谁更牛?
  20. Android原生webView概述

热门文章

  1. 有道词典java下载电脑版下载不了_网易有道词典电脑版下载
  2. C#编程--ribbon界面介绍
  3. ET框架-03 ET框架-Demo工程的编译与运行
  4. 视频教程-VB程序设计入门基础-其他
  5. 我的世界服务器怎么变无线耐久,我的世界大型服务器三小时新手变老手技巧
  6. IDEA代码规范插件P3C+代码注释模板
  7. Echarts 柱状图使用
  8. android9 三星 港版,三星S10+官方港版安卓9完整固件升级更新包:TGY-G9750ZHU1ASF1
  9. 两级缓存框架J2Cache的使用
  10. bitvise SSH 打开代码中文显示乱码的问题