最近因工作需要,了解下Java二进制存储情况,发现Java中二进制都是以补码形式存储。下面简单介绍下二进制的补码转换:
<div>
<div>在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
(1)正数的补码:与原码相同。
【例1】+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
【例2】求-7的补码。
因为给定数是负数,则符号位为“1”。
后七位:+7的原码(0000111)→按位取反(1111000)→加1(1111001)
所以-7的补码是11111001。
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
(2)如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
另一种方法求负数的补码如下:
例如:求-15的补码
第一步:+15:00001111
第二步:从右向左找到第一个1,然后把左边的所有位取反
11110001
原文地址:
二进制--补码简介 | http://orgcent.com/binary-complemental-code-profile/
分享到:
相关推荐
二进制-原码-补码-反码.pdf
讲述了二进制中的原码、补码、反码的基本概念,让读者对其有更深刻的了解!
/* *功能实现任意二进制数的原码 反码 补码转换 *仅仅是字符串的操作,没有进行数字操作 *对-0的操作可能有问题 *ssfshine@gmail.com */
十个八位十六进制数字,装换为二进制,然后取其补码,然后求其平均值。用c编写,代码稍微有点问题,大家可以完善下
matlab实现十进制到二进制定点有符号补码小数的转换,其中定点小数的整数部分位长和小数部分位长可以自己指定,输出的最高位表示符号位(0为整数,1为负数),补码表示
本VI,是在labview环境开发。16进制到二进制原码、反码、补码计算
16进制(4位)到二进制原码、反码、补码计算
此文用于教学给学生看,欢迎专业人士来拍砖指正,避免本人陷于无知而不自知。
整数转二进制补码的源代码 提供了两种方法:一种调用java api中的方法。另一种是自己实现的。
这些函数像内置的 MATLAB 函数 BIN2DEC 和 DEC2BIN 一样在二进制字符串和十进制数之间进行转换,但可以容纳负整数(通过二进制补码)和分数正负数(通过二进制补码固定点和字符串中的二进制小数点)。 请注意,许多...
matlab_用于2s补码到十进制转换器的源代码 将2s补码转换为等效的有符号十进制数。接受两个参数—数据和数据的宽度位数 out = twos2decimal(data,16)
(2)设计试验步骤 (3)使用开关进行数据加载,完成补码加、减运算 (4)符号位运算采用双符号位,累加器应有清零控制 (5)通过指示灯观察运算结果,记录实验现象
针对补码这个常见的概念,引申到小数的补码,并且用实例说明其运算规则。
二进制补码乘法及其FPGA实现 帮助理解吧
在 MATLAB 中计算有符号整数的二进制补码。
计算机数据进制转化(二进制 十进制 八进制 十六进制),以及机器码(原码 反码 补码)。
二进制定点补码一位除法的讨论二进制定点补码一位除法的讨论二进制定点补码一位除法的讨论二进制定点补码一位除法的讨论二进制定点补码一位除法的讨论二进制定点补码一位除法的讨论二进制定点补码一位除法的讨论二...
二进制定点整数补码运算中“丢失”与“溢出”问题的研究论文
二进制图文详解 二进制Binary 2进制 逢二进一的计数规则。 在计算机内部,一切数据都是2进制的!! 2进制的数字 补码 补码本质是一种解决负数问题的算法。 1. 将数据的一半当做负数使用。 2. 补码在内存中是2...
十进制小数转化二进制小数(补码形式输出),对RAM或ROM设置初值极其方便