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/

2014年5月3日 星期六

if....else if..... else V.S if.....if......if....

如果改成這樣  ㄟ   發現也能有相同結果ㄟ
#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    if(x<0)
        printf("x is negative\n");
    if(x==0)
        printf("x=0\n");
    if(x>0)
        printf("x is postive\n");
}
先來看看if.....else....最單純的  二選一觀念吧  喔  
只要上面那行if成立就不做else
只要上面那行if不成立就代表else成立

  
之後這題應該可看出if...if...if...跟if...else if....else 的差別了
先刪掉(b)  else後面不可加括號條件 (d) 你是來亂的嗎0.0|||
之後的(a)喔   每行都做的意思第一個if成立了第二個也成立通通都做通通都執行相近的指令
(c)呢????喔   原來如此是二選一阿    第一個if成立了之後下面那個else if 就不鳥它了
再看看一個降冪排列的問題

if...if...if... (一行一行照做) VS if...else if...else(三選一)   所以這裡要使用前面那個呢 

進位小表格


如何使用二維陣列 輸出*星星愛心圖