C 程式,,高手給解釋一下

時間 2022-11-24 16:10:40

1樓:匿名使用者

第一行int a=(unsigned)-1; a本身是int型的,所以a是有符號整形。

這行意思是把-1賦值給變數a,然後符號a所在的記憶體位址的內容就是0xffffffff,也就是-1。

對於有符號數來說,其記憶體的最高位表示符號位,0表示正數,1表示負數。

所以0xffffffff對於有符號數來說是-1,對於無符號數來說是4294967295。

printf("以十進位制形式輸出a:%d\n",a);

%d輸出的是有符號數,所以這裡輸出-1

printf("以八進位制形式輸出a:0%o\n",a);

c語言中,以0開頭的數字表示8進製,8進製形式輸出的數字已經帶有符號位,就是去掉第乙個數字0後的第乙個bit(位)。

printf("以十進位制無符號形式輸出a:%u\n",a);

無符號輸出的華,a的記憶體0xffffffff就表示數字:4294967295

printf("以十六進製制形式輸出a:0x%x\n",a);

16進製制的輸出本身也帶了符號位,就是輸出數字的最高位,所以單就輸出來說,8進製很16進製制不區分有無符號。

printf("以八進位制形式輸出(unsigned)-1:0%o\n",(unsigned)-1);

printf("以十進位制形式輸出(unsigned)-1:%u\n",(unsigned)-1);

printf("以十六進製制形式輸出(unsigned)-1:0x%x\n",(unsigned)-1);

以上三個同理

對於c++的輸出,cout輸出的是變數或常量的型別,也就是說變數是有符號的,它就輸出有符號的,變數是無符號的,它就輸出無符號的。

需要主義的是,b是無符號的,a是有符號的,unsigned(-1)是無符號的。

所以結果顯而易見

2樓:天昊的回憶

這些行全是控制台列印行數

就是按指定格式列印出制定的變數

這是c/c++語言最基本的東西 建議你先看看printf 和cout的用

不然給你講了 你也會不太明白

3樓:

先看-1在記憶體中的儲存。計算機存放的是補碼,整形量是4個位元組。

1的原碼:00000000000000000000000000000001

-1的原碼:10000000000000000000000000000001

(最高位是符號位,負數的符號位是1

-1的反碼:111111111111111111111111111111110

-1的補碼:111111111111111111111111111111111

這句int a=(unsigned)-1;雖然右邊是無符號數,但a是int型,是有符號數。

所以:printf("以十進位制形式輸出a:%d\n",a);

輸出-1

printf("以八進位制形式輸出a:0%o\n",a);

printf("以十進位制無符號形式輸出a:%u\n",a);變成無符號數是

4294967295

printf("以十六進製制形式輸出a:0x%x\n",a);

是0xffffffff

printf("以八進位制形式輸出(unsigned)-1:0%o\n",(unsigned)-1);

printf("以十進位制形式輸出(unsigned)-1:%u\n",(unsigned)-1);

printf("以十六進製制形式輸出(unsigned)-1:0x%x\n",(unsigned)-1);

這裡(unsigned)-1和a在記憶體裡存放的內容是一樣的,所以輸出同前。

你只要知道它在記憶體裡存放的內容,對有符號數最高位按符號位對待,再算真實值(按輸出要求的真實值)

cout<<"用cout輸出b:"<

b是無符號數,所以按無符號數算。

誰能解釋一下這句句子的深意,給解釋一下這句話的含義

取意於上個世紀七十年代柏林女權運動提出的著名口號 乙個女人需要男人,就像一條魚需要自行車一樣。a woman needs a man like a fish needs a bicycle 這是 魚和自行車 的英語解釋,最初是一句女權運動的口號,意思是女人不需要男人,就像魚不需要自行車一樣。意思是女...

求各位物理高手幫忙解釋一下

這個我以前好像聽我們物理老師講過,但記不太清了,大概意思是說 科學家試想,我們把一種物質不斷分解,從分子,原子,電子 到今天的夸克,再不斷的分解下去,直到不能再分解為止,做為一種基本原素,它們在自然形境中當然不會以最小形式出現,在某種因素的影響下,它們會重新組合,於是,就算我們不人為的施加外力,它們...

C語言能詳細解釋一下這個程式嗎如果是特殊迴圈,請解釋一下

for a b b i 中b從5增至9,a b成功5次,所以i 執行5次,最後i從0增至5。while a c j 中c從5增至9,a c成功4次 由於前 使a失去了與5相比的機會 所以j增4次為4。do k while a d 中與前面的for一樣d從5增至9,a d成功5次,但k 在進入迴圈時先...

這句話那為高手給解釋一下不勝感激

貨幣戰爭 裡的原話吧?西方許多國家 已經沒有貨幣發行權了,發行權在銀行手上,記住,這裡的銀行是私人銀行,所以不存在銀行國家一樣的說法。國家要發行貨幣了,就先發行債券,然後銀行收購債券,就有了錢,彌補赤字等等。這裡,好像雙方都是受益人,有錢做他想做的事,銀行有了國家擔保的債息收入,唯一的受害方就是公民...

c 語言中x 誰能解釋一下

x 是先運算後 1 x 5 比如printf d x 輸出的結果是 5 x 是先 1 後運算 同樣x 5 printf d x 輸出的結果是 6。簡單的來說,i 和 i 在單獨使用時,就是 i i 1。而 a i,相當於 i i 1 a i 而 a i 相當於 a i i i 1 for i 0 i...