Java中的整数都是通过补码表示的,当整数为正数时,补码和原码相同,当整数为负数时,补码为原码按位取反(符号位除外),然后加1.

通过一些例子可以比较明显的看出:

int a = -1;
System.out.println(Integer.toBinaryString(a));
//output: 11111111111111111111111111111111
int a = -128;
System.out.println(Integer.toBinaryString(a));
//output: 11111111111111111111111110000000

在将int通过(byte)方式转换为byte类型时,截取最后一个字节。

所以byte的值由int最后一个字节决定,最后一个字节的第一位变为符号位,所以byte的值在127和-128之间。

int a = 128122;
System.out.println(Integer.toBinaryString(a));
byte b = (byte) a;
System.out.println(b);
//output:
11111010001111010
122
int a = 127;
System.out.println(Integer.toBinaryString(a));
byte b = (byte) a;
System.out.println(b);
//output:
1111111
127
int a = 128;
System.out.println(Integer.toBinaryString(a));
byte b = (byte) a;
System.out.println(b);
//output:
10000000
-128

Java中用反码表示整数,及int到byte的转换的更多相关文章

  1. java笔记--关于int和byte[]的转换

    关于int和byte[]数组的转换 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3891747.html "谢谢-- 众所 ...

  2. TCP通信实现对接硬件发送与接收十六进制数据 & int与byte的转换原理 & java中正负数的表示

    今天收到的一份需求任务是对接硬件,TCP通信,并给出通信端口与数据包格式,如下: 1.首先编写了一个简单的十六进制转byte[]数组与byte[]转换16进制字符串的两个方法,如下: /** * 将十 ...

  3. int跟byte[]数组互转的方法,整数 + 浮点型

    整数: int转byte数组 public static byte[] intToBytes2(int n){ ]; ;i < ;i++) { b[i]=(-i*)); } return b; ...

  4. 【转】java中byte, int的转换, byte String转换

    原文网址:http://freewind886.blog.163.com/blog/static/661924642011810236100/ 最近在做些与编解码相关的事情,又遇到了byte和int的 ...

  5. 计算机基础--Java中int char byte的关系

    计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...

  6. Java中int和String互相转换的多种方法

    1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...

  7. java.util.Random 类的 nextInt(int num )

    随机产生3个67~295的整数并找出数值居中的数 并输出中间的数例如:100,225和200,输出200 要随机产生某个范围内的整数,用 java.util.Random 类的 nextInt(int ...

  8. 【Java编程】Java中的大整数计算

    在上一篇文章中,我们实现了c语言中的大整数的运算,并且用Miller-Rabin算法实现了对大素数的测试.本来我准备用Java代码实现大整数的运算,查了一下资料发现Java中java.math的Big ...

  9. java中的int与byte的转化

    java中的int与byte的转化 1.基础准备 1.1.原码 就是二进制码,最高位为符号位,0表示正数,1表示负数,剩余部分表示真值 1.2.反码 在原码的基础上,正数反码就是他本身,负数除符号位之 ...

随机推荐

  1. docker基本用法和命令

    1.安装docker 检查有没有curl which curl 如果没有用以下命令可安装:sudo apt-get install curl 通过官方提供的脚本安装最新docker curl -sSL ...

  2. oracle导入时报错

    之前在oracle数据库中新建了一个表空间和用户,在新建的用户下导入".dmp"文件是出现了这个错误. 解决方法: 使用管理员登陆进去,创建一个对应的表空间和用户,就OK了. (表 ...

  3. 如何用纯 CSS 创作一个跳动的字母 i

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pZbrpJ 可交互视频 ...

  4. 20145307第七周JAVA学习报告

    20145307<Java程序设计>第七周学习总结 教材学习内容总结 Lambda Lambda语法概述: Arrays的sort()方法可以用来排序,在使用sort()时,需要操作jav ...

  5. Win7下硬盘安装fedora17

    Win7下硬盘安装fedora17 这几天经过很多次的百度和实验,终于成功的在我的x64机子上装上了fedora17,以此分享给大家,希望能给大家帮助. 一.准备工作: 1.工具,因为我们电脑上大部分 ...

  6. Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)【转】

    本文转载自:https://blog.csdn.net/Zafir_410/article/details/73188228 前言 前面好一阵子忙于写论文和改论文,好久没有做新实验了,最近又回到做实验 ...

  7. How to Enable RPMForge Repository in RHEL/CentOS 7.x/6.x/5.x

    RPMforge repository is a utility that is used to install third party software packages under Red Hat ...

  8. 混合开发的大趋势之一React Native之页面跳转

    转载请注明出处:王亟亟的大牛之路 最近事情有点多,没有长时间地连贯学习,文章也停了一个多礼拜,愧疚,有时间还是继续学习,继续写! 还是先安利:https://github.com/ddwhan0123 ...

  9. 【bzoj4976】宝石镶嵌(思维dp)

    题目传送门:bzoj4976 不得不说这是道脑洞dp,思路真的清奇. 我们可以发现,虽然n很大,但是k只有100,这里面似乎隐藏了什么玄机. 我们可以发现,设总共有$ tot $个二进制位在这n个数中 ...

  10. Mysql uploader File

    前几天和哥们做一次渗透测试,内网情况.防护相当严格. 内网不允许访问DMZ,DMZ不允许访问内网,除了服务端口,比如80,3306. 经过长时间的分析,就发现本机连接了内网的一个MYQL,发现WEB开 ...