
ASCII碼如何理解?
文章目錄
- ASCII碼如何理解?
- 前言
- 一、ACSII碼是什么?
- 二、ACSII碼表
- 三、ASCII結合資料儲存的理解
- 總結
前言
剛開始接觸ASCII碼學習的小白,經常會覺得資料的儲存,尤其是字符的儲存很難理解:
char c = 'a';
//char c = 0;
//char c = 48;
//char c = '0';
printf("%d\n", c);//以十進制整數形式列印
printf("%c\n", c);//以字符型別列印
printf("%x\n", c);//以十六進制整數形式列印
看到上述代碼塊,你可以清晰的回答各個輸出的原理碼?
一、ACSII碼是什么?
ASCII ((American Standard Code for Information Interchange): 美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言,
在計算機中,所有的資料在存盤和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存盤時也要使用二進制數來表示,
而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那么大家就必須使用相同的編碼規則,于是美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示,使用 [0, 127] (7位二進制數)的一個數值來表示一個字符(英文字母,符號等),這樣機會有一個一一對應的關系,那么這個就是我們的ASCII碼表,
二、ACSII碼表

三、ASCII結合資料儲存的理解
- 字符 ‘0’ 對應的ASCII碼是 48 ,那么在記憶體里面,‘0’ 和 48 存放的都是 48對應的二進制,
char x = '0';
char y = 48;//發生截斷,僅保存最低8個位元位
printf("%d\n", x);//48
printf("%c\n", x);//0
printf("%d\n", y);//48
printf("%c\n", y);//0
🛑🛑🛑
借鑒大佬理解:
用數值給某個字符變數賦值時,相當賦與該數字相同碼值所對應的字符;
用字符給某個字符變數賦值時,即賦字符本身,
原文:
https://blog.csdn.net/qnavy123/article/details/93901631
首先,我們要明確,我們存放資料到記憶體時,資料的型別僅僅起到開辟空間的大小問題,與起始放入的資料的型別無關,因為等號右邊的資料在放入開辟的空間前已經轉換為對應的二進制補碼,
我們輸出的時候,根據我們想要輸出的型別,如果我們想要輸出字符型別,就會輸出該ASCII碼對應的字符;如果我們想輸出它的ASCII碼,那就直接輸出48,
int x = '0';
int y = 48;
printf("%d\n", x);//48
printf("%c\n", x);//0
printf("%d\n", y);//48
printf("%c\n", y);//0
與上同理,
總結
這里對文章進行總結:
以上就是今天總結的內容,本文僅僅簡單介紹了ASCII碼對我自身使用的一些困擾點,
真💙歡迎各位給予我更好的建議,歡迎訪問!!!小編創作不易,覺得有用可以一鍵三連哦,感謝大家,peace
希望大家一起堅持學習,共同進步,夢想一旦被付諸行動,就會變得神圣,
歡迎各位大佬批評建議,分享更好的方法!!!🙊🙊🙊
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/385656.html
標籤:其他
上一篇:校尉羽書飛瀚海,順序表中增刪改
下一篇:R語言ggplot2可視化分面圖(facet,facet_wrap): 不同分面配置不同的資料范圍、自定義每個分面的軸資料格式化形式及資料范圍
