美文网首页
十进制负数的二进制表示法

十进制负数的二进制表示法

作者: 瑝琦 | 来源:发表于2019-04-04 18:43 被阅读0次

十进制转正整数转二进制应该都会,用C语言代码简单表示算法:

#include<stdio.h>
int main()
{
    int dec=65535; /*positive decimalism number to binary number*/
    int bin[32];
    int i=0, j;
    while (dec>1)
    {
        bin[i]=dec%2;
        dec/=2;
        i++;
    }
    bin[i]=dec;
    for (j=i; j>=0; j--) /*print binary number*/
    {
        printf("%d",bin[j]); 
    }
    printf("\n");
}

当然也有另外一种简单转换方法:

#include<stdio.h>
int main()
{
    int dec=65535;
    char bin[32];
    itoa(dec,bin,2); /*整型转换为字符串的函数,第一个参数是整型变量,
    第二个是字符数组,用于存放字符串,第三个是进制,“2” 表示输出的字符串的进制格式,
    可以这样记函数:“int to arr” */
    printf("%s\n", bin);
}

但是,十进制负整数转换为二进制稍微复杂一些,分为三步:

一、原码

例如一个十进制数 5,二进制原码表示为:

00000000 00000000 00000000 00000101

大小为 4 字节,每一个 01 表示一个比特位(bit),所以八位为一字节,好像32位和64位系统都这样。一字节用十进制整数表示大小则是:2的8次方(256)。
表示为十六进制是这样:ff ff ff ff(f=2^4-1)

二、反码

将二进制原码每一位取反,就是 0110
上面 5 的反码表示为这样:

11111111 11111111 11111111 11111010

三、补码

将反码最低位加 1 叫做补码,那么 5 的补码表示为:

11111111 11111111 11111111 11111011

注意反码末位是 1 时记得进位。

所以十进制数 -5 的二进制表示为:

11111111 11111111 11111111 11111011

所以 -1 在计算机中表示为全 1,就是:

11111111 11111111 11111111 11111111

我64位计算机中是这样的:

20180404111248861.jpg

相关文章

  • java位移操作

    十进制、二进制 十进制数在计算机中的表示方法,对于正数和负数是不一样的。负数:绝对值对应的二进制,取反码,将反码加...

  • 从十进制到二进制(二)

    从上一篇看,二进制似乎不能像十进制那样使用负号来表达负数概念,其实负号只是一个约定,十进制不用负号也能表示负数,只...

  • 十进制负数的二进制表示法

    十进制转正整数转二进制应该都会,用C语言代码简单表示算法: 当然也有另外一种简单转换方法: 但是,十进制负整数转换...

  • 二级制1的个数

    题目: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 重点是怎么 十进制转化成二进制。

  • leetcode 29 右移操作+int 负数知识

    二进制负数 正数的十进制对应。负数转换成十进制负数的法则和口诀: 异或:a^b ab状态不同时=1,相同时=0; ...

  • java中的小细节

    java中的小细节 1)java中的负数用二进制表示是用补码的形式(负数的绝对值取反 加一):例如十进制的-1 ...

  • 十进制和二进制之间的相互转换

    1、十进制转二进制(0和1形式的表示法) 1.1、十进制整数部分转二进制,思路:将十进制整数取余,得到一个余数,然...

  • 5分钟讲清楚浮点数的底层表示

    浮点数的二进制表示,基本上就是用二进制的科学计数法来表示。 一个十进制的数0.75,用科学计数法表示是+7.5*1...

  • 二进制基础

    二进制转十进制 十进制转二进制 八进制转二进制 二进制的位运算 关于负数的右移与无符号右移运算小结

  • 字符串知识点

    ·二进制补码基础 补码用于在计算机内表示负数, 负数 2的补码表示法可以将加法运算规则,扩展到整个整数集。 · 机...

网友评论

      本文标题:十进制负数的二进制表示法

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