Translate

2014年5月10日 星期六

輸入十進制轉換成二進制

方法一.
#include<stdio.h>
int main()
{
    int n,i,k;
    printf("輸入一個十進制整數");
    scanf("%d",&n);
    printf("%d 轉換成二進制為:\n",n);
    for(i=31;i>=0;i--)
    {
        k = n >> i;
        if(k&1)
            printf("1");
        else
            printf("0");
    }
    printf("\n");
}


























----------------------------------------------------------------------------------
方法二.
#include <stdio.h>
void i2b(int);
int main ( void )
{
    int n;
    printf("輸入一個十進制整數");
    scanf("%d",&n);
    i2b(n);
    return 0;
}

void i2b(int n)
{
unsigned int mask=0x80000000;  /*------------------>32bit*/
int i;
printf("%d 轉換成二進制為:\n",n);
    for(i=31;i>=0;i--){
    printf("%c",(n&mask)?'1':'0');    /* AND 其中一個是0就0 類似"乘號" 搭配 三元運算子 */
    n<<=1;    /* n=n<<1 */
    }
}

binary10000000000000000000000000000000
binary bytes10000000 00000000 00000000 00000000
decimal2147483648
decimal (formatted)2,147,483,648
dotted decimal128.0.0.0
hex bytes80 00 00 00
hexidecimal80000000
IPv6::8000:0
octal20000000000
表格轉自:http://www.numberplanet.com/number/80000000/

沒有留言:

張貼留言