比如,假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
现在想知道,-5在计算机中如何表示?
在计算机中,
负数以其正值的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
比如 00000000 00000000 00000000 00000101 是 5的 原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
比如:将00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。
称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。
反码是相互的,所以也可称:
11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。
那么,补码为:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。
再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取1的原码:00000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110
3、得补码: 11111111 11111111 11111111 11111111
可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF。
使用Windows7的用户可以使用自带的计算器来帮助学习十进制、八进制、十六进制与二进制间的相互转换,非常方便。
.
分享到:
相关推荐
java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docxjava 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docx
MATLAB中负数8位二进制与10进制之间的转换
Matlab负数十进制转二进制代码 对于基础有用
java语言编写的十进制正数和负数转换二进制算法。
任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码
本文件为将二进制图片格式转换为十进制,并以数据和曲线的形式展现。
(word完整版)Matlab负数十进制转二进制代码.doc
自写进制转换(可正可负,可带小数).rar 自己写的。...可以在二,八,十,十六进制之间转换。 负数。小数都可以。 但是负数与小数没有同时存在进行转换。 如果有人完成。可以联系。 大家共同学习进步。
1:正数的二进制第一位数字为0。...2:负数的二进制第一位数字为1。 3:将一个10进制数转成对应的进制,就是不断的取余数的过程。二进制取低位,8进制和16进制取高位。 4:一个数的负数=它的反码+补码1。
提供了多种数字计算和测试的功能,如输入十进制数,输出对应的二进制数,或者输入二进制数,输出对应的十进制数,以及支持浮点型和负数的转换。本资源适合数字计算和测试的学习者和工程师使用,帮助他们通过Web界面...
子网划分辅助:即IP地址十进制与二进制的相互转换,以及二进制的与、或、取反操作 附加工具: .ASCII表:0-127的ASCII表,以2、8、10、16及HTML分别表示 .简化计算器:四则运算、乘方、开方、阶乘。大部分功能...
用文本文档编写的汇编语言程序 从键盘输入一个十进制数,以二进制输出
任意数字转换为二进制,包括负数,负整数,负小数,正整数,正小数,大于1的小数或者小于1的小数。
本文档详细介绍了 数字在计算机中时如何用二进制表示的,以及计算机是如何计算减法运算的,简单介绍了数字的原码、反码、补码,没有了解这方面的 请先去了解一点,有助于理解。
十六进制转换成二进制,处理负数,二进制最高位是1表示负数,0表示正数。源代码,已测试,
10进制负数求补码.含有ch451接口程序,适用于stc51单片机,可以求-99——0的补码。补码为八位。
正整数 10进制 2进制 转换正整数 10进制 2进制 转换正整数 10进制 2进制 转换
利用Java编写程序,提示用户输入一个十进制整数,然后显示对应的二进制值。在这个程序中不要使用Integer.toBinaryString(int)
labview十六进制转十进制,输入字符串控件是十六进制显示。
(完整版)Matlab负数十进制转二进制代码.doc