美文网首页
原码、反码、补码

原码、反码、补码

作者: 陈陈_04d0 | 来源:发表于2020-11-19 09:43 被阅读0次

二进制 1010 1001 十进制 169


手动推算

 Integer.toBinaryString(mCheckSum) //int转为二进制

原码:把最左边的一位腾出来表示正负,0 表示正数,1 表示负数

负数:  1010 1001

反码:正数的反码与其原码相同,负数的反码是符号位不变其他位取反   

负数: 1101 0110

补码:正数的补码与其原码相同,负数在反码的基础上 +1

负数:1101 0111

转换: 101 0111 16进制 57


代码方式计算

byte[] bytes = Convert.hexsStringToBytes("7F10020612");//转为数组

int mCheckSum = ~Convert.byteSum(bytes) +1;//求和反码

String.format("%04X", mCheckSum &0xFFFF) // 转为16进制补码

/**

* 十六进制String 转为byte 数组

* @param hexString 值

* @return

*/

public static byte[]hexsStringToBytes(String hexString) {

if (hexString ==null || hexString.equals("")) {

return new byte[1024];

    }

hexString = hexString.toUpperCase();

    int length = hexString.length() /2;

    char[] hexChars = hexString.toCharArray();

    byte[] d =new byte[length];

    for (int i =0; i < length; i++) {

int pos = i *2;

        d[i] = (byte) (charToByte(hexChars[pos]) <<4 |charToByte(hexChars[pos +1]));

    }

return d;

}

c

相关文章

  • 软件测评师做题技巧

    第一类补码,反码,原码 正数:原码=反码;补码=原码负数:反码=原码求反;补码=反码+1 第二类用例概率的计算 测...

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • 计算机为什么要使用原码、反码、补码

    1. 什么是原码、反码、补码 先看一个例子: +1和-1的原码、反码、补码的表示 原码、反码、补码的计算方式如下:...

  • 补码

    原码、反码、补码 原码:符号位 反码:减法变加法 补码:+1解决-0问题 数学原理 同余 反码:mod127 补码...

  • 【计算机】我的收藏文章索引

    索引表 索引标题链接摘要原码、反码、补码《原码、反码、补码,详解》http://www.cnblogs.com/z...

  • [计基]-二进制之补码

    一.基础名词 原码 : 0011 反码 :0011(原码) >> 1100(反码) (原码按位取反) 补码 :00...

  • 技术问 - 原码、反码、补码

    什么是原码、反码、补码:

  • 位运算

    1.原码、反码、 补码正数的原码、反码、 补码都一样 正数以原码存储在计算机负数 以补码存储在计算机 例...

  • 原码、反码和补码

    正数的原码、反码和补码相同,亦是正数 负数的原码、反码和补码符号位为1,代表负数,反码在原码的基础上符号位不变,其...

网友评论

      本文标题:原码、反码、补码

      本文链接:https://www.haomeiwen.com/subject/hwlumktx.html