C++程式設計教學(二)變數與命名

“變數”這個詞彙可能讓你聯想到什麼?是不是國高中那個令人困惑的”x”呢?

也許你跟”x”已經很熟了,但是在程式中,變數是一個裝著資料的容器,用的是記憶體 ( RAM )的空間,把它當作可以暫時存取數字的東西就可以了,以下是常見的資料型態。

int 整數(簡單易懂)
float 浮點數(當做小數即可)
long 長整數(比整數長)
double 雙精浮點數(當做更精準的小數即可)
bool 布林值(其實就是 真與假 true/false)
char 字元(非中文的字母還有一些符號和數字)

變變數是有儲存空間上限,相對的,也會用到不同大小的記憶體空間,的以下是常見的資料型態的存量(我們家的編譯器)以及所需記憶體空間

int -2147483648 ~ 2147483647                              4 bites(位元組)//註1
float 10^31 ~ 10^-31 & 0 & -10^-31 ~ -10^31               4 bites(位元組)
long -2^63 ~ 2^63-1                                       8 bites(位元組)
double 10^301 ~ 10^-301 & 0 & -10^-301 ~ -10^301          8 bites(位元組)
bool 0 ~ 1                                                1 bite(位元)
char -128 ~ 127                                           1 bites(位元組)

看到這你可能想說那我都用double就好了啊!然而其實不然,因為浮點數有精準度的問題
即使是double也只有小數點以下31位左右的精度。如果要精準一定是用整數。

下一篇會介紹迴圈~

註1:一位元組包含8位元,且一位元只能存0或1,所以一位元組可以儲存2^8=256種數字。

C++基礎題—a034: 二進位制轉換

參考程式碼如下,反覆除2取餘數即可。

#include <iostream>
using namespace std;

int main(int argc, char **argv){
    int a,r,c=0;
    int ans[60];
    while(cin>>a){
	while(a>0){
	    r=a%2;
	    ans[c]=r;
	    c++;
	    a=a/2;
    }
    for(int i=(c-1);i>=0;i--){
	cout<<ans[i];
	ans[i]=0;
    }
    cout<<"\n";
    c=0; 
    }
    return 0;
}

出處:https://zerojudge.tw/ShowProblem?problemid=a034