栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言十进制转换二进制

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言十进制转换二进制

正数十进制转换二进制的方法:

将该数字不断除以2直到商为零,然后将余数由下至上依次写出,即可得到该数字的二进制表示

以20转二进制为例:

#include 

void transfer(int x)
{
        char    buf[32];
        int     i=0;


        while( (x/2)!=0 )
        {
                buf[i] = x%2;
                x = x/2;
                i++;
        }

        buf[i] = x%2;


        for(int j=i; j>=0 ;j--)
        {
                printf("%d",buf[j]);
        }

        printf("n");
}


int main(void)
{
        int x;

        while(1)
        {

                printf("请输入一个10进制数:");

                scanf("%d",&x);


                if(x<0)
                        break;
              
                printf("%d的二进制是:",x);

                transfer(x);

                printf("n");
        }

        printf("退出程序n");
        return 0;
}

 

负数十进制转换二进制的方法:

换成二进制后(带符号位),取反,加1

以int型(4个字节)的-5为例子:

5 的原码: 00000000 00000000 00000000 00000101

-5 的原码:10000000 00000000 00000000 00000101

-5 的反码:11111111 11111111 11111111 11111010(符号位不变)

-5 的补码:11111111 11111111 11111111 11111010

                  +                                                         1

                 =11111111 11111111 11111111 11111011

因此,-5 二进制为:11111111 11111111 11111111 11111011

转换为十六进制为:0xFFFFFFFB

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955349.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号