如何判断一个二进制数是正数还是负数
的有关信息介绍如下:计算机领域就是0和1的世界,所有的计算机运算都是0和1在不断的进行运算,看起来复杂,实则简单
最近,我有些对如何看一个二进制是正数和负数有些疑惑,搜了一些资料,终于想通了,在此,按照自己的理解给大家解释一下。
首先,我们先大致了解一下二进制是什么吧。
二进制是0和1组成的一组数,以2为进制。我们平常说的1,2,3...9.10其实是10进制,逢10进1,另外常见的还有8进制、16进制等。
如下面的11,表示成二进制为1011;表示成8进制:0013;表示成十六进制为:
000B
接下来,介绍二进制的正负数表示。这里我们仍以11为例。
(仅作为介绍原码、补码、反码概念,并不是计算机中完整的存储结构)
+11: 1011(+11的补码,并不是在计算机中的完整存储结构);
-11: 0101(-11的补码,并不是在计算机中的完整存储结构)
为什么是这样呢?
有符号数即正负数在计算机是以补码形式存储的。
接下来介绍补码的概念和计算方法。
补码是从原码的基础上来的
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。即-11,按照绝对值11转换的二进制数:1011,即是-11的原码
反码:原码按位取反。-11 的反码:0100
补码:(为了便于加减计算)
正数的补码就是原码;11 的补码:1011
负数的补码是原码的反码再加1。-11 的补码:0100
我们可以看下负1在计算机中的表示,32位整型。
1的原码:00000000 00000000 00000000 00000001
反码: 11111111 11111111 11111111 11111110
补码: 11111111 11111111 11111111 11111111
其在计算机中以4个字节表示,也就是32位,最高位代表符号位。
所以看一个二进制是否是正数还是负数,需要先说明其是存储在计算机中,然后要搞清楚其在计算机中是以有符号进行存储还是无符号进行存储。
1. 如果是无符号存储,则其为一个正数。
2. 若是有符号存储,则为补码存储。
(补码存储)需要看其最高位,最高位为0,为正数; 反之,为负数。
如果仅仅是给了一堆二进制:比如10101010,你如果不说是在哪存的?那么它是没有正负概念的。或者说10101010是原码或者补码,进而推断它的原始的值。
计算机中的计算都是以0和1来进行计算的,可以说计算机的操作背后都是无数的0和1在不断变换,计算机世界从某种程度上来说就是0和1的世界。
学习简单的计算机中的二进制表示方式有利于我们更好的掌握计算机知识。