無符號型別規則

2021-09-25 20:37:43 字數 616 閱讀 1687

#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被翻譯成非常大的正數 只有在使用位段和二進位制掩碼時,才可以用無符號數。應...