十进制转换成二进制及掩码生成

本文介绍了如何使用C语言实现从十进制数到二进制数的转换,并给出了两种生成特定掩码的方法:一种是通过位移操作设置指定范围内的位为1,另一种是通过数学计算来确定掩码的数值形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十进制转换成二进制

void  change (int num)

{

    unsigned int temp;

   unsigned  int mask = 1;

   int i;

for(i = 31; i >= 0;i--)

{

    temp = ((unsigned int)num >> i) & mask;

     printf("%d",temp);

      if( i % 4 == 0)

{

    printf("\n");

}

}

}

 

 

 

生成掩码的方式1

//将从左边开始的,第N位到M位置1

0000 0000 0000 0000 0000 1111 0000 0000

void  mask(int n,int m);

{

        unsigned int temp;

        temp = (unsigned int )~0  >> (32-(n - m +1));

         temp = temp << n;

        change(temp);

        printf("\n");

}

 

 

生成掩码方式2

利用向左移×2,向右移÷2

第N~M为1的十进制是2^(m+1)-2^n;

void mask(int n,int m)

{

    unsigned int temp;

    temp = pow(2,m+1)-pow(2,n);

    change(temp);

printf("\n");

}

函数中调用了pow()次方函数,所以要加头文件#include<math.h>

linux下用GCC调试调用该函数的库是要加gcc -lm

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值