#include
#include
using namespace std;
int main(void) {
unsigned boy_age; //男孩年齡
unsigned girl_age; //女孩年齡
unsigned age; //年齡
cout << "男孩的年齡:" << endl;
cin >> boy_age;
cout << "女孩的年齡:" << endl;
cin >> girl_age;
age = boy_age - girl_age;
cout << "男孩比女孩大:" << age << "歲" << endl;
age = girl_age - boy_age;
cout << "女孩比男孩大:" << age << "歲" << endl;
system("pause");
return 0;
//unsigned 就是 unsigned int型別
/*無符號數,不能表示負數!
強行用無符號數表示負數
會對該型別範圍負數「補碼」
*/
有符號型別與無符號型別值範圍
以char為例 最小值為 signed char p 0x80 最大值為 signed char q 0x7f p,最高為1時表示為負數,絕對值為2 7次方 0x80 0x7f 0xff 1 面試題int為4位元組 unsigned int p 6 signed int q 20 p q的十六進製制...
有符號型別與無符號型別之間的轉換
void foo void unsigned int a 6 int b 20 a b 6 puts 6 puts 6 printf b x n b b 0xffffffec 這個問題測試你是否懂得c語言中的整數自動轉換原則 這無符號整型問題的答案是輸出是 6 原因是當表示式中存在有符號型別和無符號...
對無符號型別的建議
盡量不要在你的 中使用無符號型別,以免增加不必要的複雜性。尤其是,不要僅僅因為無符數不存在負值 如年齡 國債 而用它來表示數量 盡量使用象int那樣的有符號型別,這樣在涉及公升級混合型別的複雜細節時,不必擔心邊界情況 例如 1被翻譯成非常大的正數 只有在使用位段和二進位制掩碼時,才可以用無符號數。應...