歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 十進制轉換成二進制及掩碼生成

十進制轉換成二進制及掩碼生成

日期:2017/3/3 11:25:51   编辑:Linux技術

十進制轉換成二進制

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

Copyright © Linux教程網 All Rights Reserved