字元的輸出

2021-08-10 22:17:47 字數 1231 閱讀 7614

乙個字元佔乙個位元組,八位,所以字元型資料最多可以儲存256種狀態。

因為計算機中只能儲存0和1,我們想要儲存字元怎麼辦呢,於是就出現了字符集,我們最常用的字符集就是ascii碼,萬維碼是包含最廣的字符集。

字元在計算機無法儲存,因為計算機只識別0和1,那就制訂了一套規則,用數字表示字元,所以字元在計算機中儲存的都是它對應的編碼。大多數系統採用的是ascii字符集,乙個字元對應乙個ascii碼值。還有其他的字符集,但是各種字符集都包括了127種基本字元。127種基本字元用7個二進位制位儲存,如果系統只提供127個字元,就將最高位置0,後面7位存放0~127,即127個字元**。這種情況char就相當於signed char。字元變數是用型別符char定義的型別變數,實質是乙個位元組的整型變數,經常用它來儲存整字元,可以把0~127之間的整數賦給字元變數。

下面是一些比較常用的字元:

字元 :           『0』『a』   'a'    '\0'

對應的ascii:     48      97    65     0

字元0對應的ascii 碼值是48,0~9是連續的,a~z也是連續的,a~z也是連續的,可以通過第乙個求出後面的ascii值。

因為我們只能用127個字元,如果不小心把200賦給了乙個字元型變數會輸出什麼字元呢,整數形式還會輸出200嗎?

200的二進位制是 1100 1000

這個數存放在計算機中是怎麼表示的,首先看符號位為1,說明是乙個負數,要得到數值位就要取反加一

1100 1000->0011 1000 數值位就是56,因為是乙個負數,所以輸出的整數應該就是-56.這就是溢位。因為發生了溢位,資料會發生截斷,和原來的數就不一樣了。

用上面這種方法,可以求出201的輸出應該是-55,202的輸出是-54,對比200的輸出是-56,好像是存在一些規律。表面來看,真正的值和輸出的值相加為256。為什麼會有這種規律呢?

這就和補碼有關係了。127的輸出還是127,但是如果是128就是-128了,這就是你希望的數值位在儲存的時候發生了資料截斷,變成了符號位,整體就變成了乙個負數,但是由於總體的數就是256個,所以從最大的數127下乙個數就是-128,相當於尾和頭連線了,就和時鐘一樣,11點後面應該是12點,但又可以是0點,因為它們互補。

所以我們會得到相加為256.如果這個數是300的話,輸出是多少呢,經過在程式中的輸出,發現是44,而300-256=44,相當於我們從0開始到127,再從-128到-1,這一輪已經結束了,再超過就是又從0開始了。

#include

int main()

ncurses輸出函式 字元 字串的輸出

printw 系列 和printf 一樣的具有格式化輸出的一類函式。addstr 系列 列印字串的一類函式。addch 系列函式 mvaddch waddch 和mvwaddch 函式 addch ch printw 系列函式printw 函式和mvprintw 函式wprintw 函式和mvwpr...

字元輸出流

writer filewriter filewriter的注意事項 1.filewriter的內部也是維護了乙個 1024個字元的 字元陣列,當我們在寫入資料到磁碟的時候,實際上這個類 是先將這個 資料寫入到了 內部維護的 1024個字元的 字元陣列中 以下三種情況 才會真的將 內部維護的陣列中的資...

字元輸出函式

1字元資料輸出 為實現字元資料的輸出,c語言庫函式中提供了乙個putchar函式,其作用是向終端輸出乙個字元。注意的是putchar每次只能輸出乙個字元 putchar函式的一般形式如下 2.字元資料輸入 為實現字元資料的輸入,c語言庫函式中提供了乙個getchar函式,其作用是從終端輸入乙個字元,...