C 基礎 (整形,字元型,浮點型)
整形常量
C的整形常量有三種表示方式,即十進位制整數,八進位制整數和十六進位制整數。
十進位制數:一串連續的數字表示,最高位非零。
八進位制數:以數字零開頭。
十六進位制數:以數字零和字母x開頭,a-f不區分大小寫。
零既是十進位制又是八進位制。
整形變數又分有符號和無符號兩種,變數在使用前必須加以說明或定義。
有符號分為三種:int,short.long
無符號分為三類:unsigned int,unsigned short,unsigned long,它們的值不能為負
它們的範圍是:
short(16bit)<=int(16bit)<=long(32bit)
正整數:以原碼的形式存放在記憶體中,它的取值範圍是(0~32767)
負整數:以補碼的形式存放在記憶體中
求法:符號位不動,對原碼取反加1即得補碼。
對記憶體中的負整數轉化為十進位制數:
對補碼各位取反,符號位不動,同時對其它位數轉化為十進位制,然後將十進位制減去1.
例如:【1111111111110101】補碼 取反後 【1000000000000101】將其轉化為十進位制數字得-5
將結果減去1得到-5-1=-6.
字元常量與變數
以單引號括起來的單個字元。
/n 換行符 // 反斜線符
/t 水平製表符 /' 單引號
/b 退格符 /0 空字元(並非空格字元)
/r 回車符(不換行) /ddd 位數1至3位的八進位制數字
/f 換頁符 /0xff 位數1至2位的十六進位制數字
轉義序列輸出:
printf("A/Nbc/nDEF/n"); /作為空字元輸出。
printf("/t C Programme/rwer///n");
printf("/t C Programme/rwer///n /x");
如果是這樣的/x,一些編譯環境會認為是少一個零。將它作為十六進位制處理。
對於字串常量而言,它是有不可見字元的,例如 7 就是字串響鈴的值。
對於字元而言,它佔用八位,同時它對應相應的整形。但是如果超過位數它如何處理呢?
{
char ch_first,ch_second;
ch_first='þ';
ch_second='b';
//ch_first=ch_first-32;
//ch_second=ch_second-32; printf("ch_first=%c ch_second=%c ",ch_first,ch_second);
//þ轉化為(011111110)那麼超過了八位,那麼去掉0,按照補碼處理就是一個負數 printf("ch_first=%d ch_second=%d ",ch_first,ch_second);
getchar();
return0;
}
執行結果:(但是C編譯系統將字元當成有符號整形還是無符號整形並沒有規定,但是採用了微軟的環境則按照有符號處理)
字元量可參與任何整數運算。
數字字元可以整數值之間轉化
字元的‘9’<>9
字元量可以參與關係運算
字元量可以參與邏輯運算
字串常量
字串常量是用一對雙引號括起來的零個或多個字元的序列。
“x”在記憶體中佔用兩個位元組,而'x'佔用一個位元組。
"x"相當於"x/0"--->/0是結束標誌。
“”雙引號只充當字串的分界符,而不是字串的一部分。
如果字串出現雙引號,則必須經過轉義。
The "apple"---->The /042apple/042
字串長度即包含的字元數,例如“abc”為三,“”為零,"/0ab"的長度為2。
字串佔用的空間為長度+1。
轉義序列出現在字串中,它按照一個字元處理。
浮點型常量與變數
浮點常量有非指數和指數兩種。
非指數型:是指不帶指數部分的實型常數字。例如123.23等
指數型:帶指數部分的實數123.23e2
e不分大小寫,之前必須有數字,之後的指數必須為整數(0為非法),且不能插入空格。
浮點型變數:
通過保留字float來說明。
float x,y,z
單精度
(0.5)10=(0.1)2=(.1*20)=(1*2-1)
(12.1875)10=(1100.0011)2=(.11000011*24)=(.11000011*2-4)
12/2=6 餘 0
6/2=3 餘 0
3/2=1 餘 0
經過反序列是1100,所以整數部分為1100,
0.1875*2=0.375 取整數 0
0.375*2=0.75 取整數 0
0.75 *2=1.5 取整數 1
0.5*2=1.0 取整數 1(小數部分已經為零結束),所以小數部分為0011。
經過觀察二進位制實數總可以表示成N=S*2p
P和S都是有符號二進位制整數。P為階碼,S為尾數。S中沒有小數點或約定在最前頭。
浮點型資料4個位元組,32位資料。
S佔24bit P佔8bit,
設P的字長為n1,S的字長為n2則有-2 n1-1<=P<=2 n1-1-1,-2 n2-1<=S<=2 n2-1-1則一個實數的字長為n1+n2
雙精度
字長比單精度多一倍,佔用64位
單精度的有效數字是7位,雙精度為17位(基本的編譯器約定)
每個浮點型常量都是以雙精度型來存放的。
雙精度是通過double保留字來說明的。
double a.b
相關推薦
C 基礎 (整形,字元型,浮點型)
整形常量 C的整形常量有三種表示方式,即十進位制整數,八進位制整數和十六進位制整數。 十進位制數:一串連續的數字表示,最高位非零。 八進位制數:以數字零開頭。 十六進位制數:以數字零和字母x開頭,a-f不區分大小寫。 零既是十進位制又是八進位制。 整形變數又分有符號和無符號
Java絕對基礎知識你還記得多少:浮點型,字元型,布林型
浮點型別 java語音包含兩種浮點型別,分別為單精度浮點型別和雙精度浮點型別,各種自用float和double關機鍵字進行標識,計算機通過這兩種資料型別來儲存小數。 小數都被看做double型,佔64位,要想使用float型小數,需要在小數後加字母F或f,如1.23F,佔32位記憶體。
python讀取excel,數字都是浮點型,日期格式是數字的解決辦法
6.2 spa 讀取excel pytho work clas odin 技術 div excel文件內容: 讀取excel: # coding=utf-8 import xlrd import sys reload(sys) sys.setdefaultenco
正確生成浮點型的方法,解決sqlachemy Float浮點型的坑,生成float類型時,長度和精度均為0,導致查詢不到結果!
依然 tab 圖片 control 選擇 分享 ice mod ble 問題描述 在使用flask_sqlachemy時,給price字段選擇了Float類型,數據庫用的mysql,生成數據庫表後,發現 from sqlalchemy import Float
正確生成浮點型的方法,解決sqlachemy Float浮點型的坑,生成float型別時,長度和精度均為0,導致查詢不到結果!
問題描述 在使用flask_sqlachemy時,給price欄位選擇了Float型別,資料庫用的mysql,生成資料庫表後,發現 from sqlalchemy import Float,Column price = Column(Float,default=0.00) &
MFC中CString類字串與長整型、浮點型、字元陣列char資料之間的相互轉換
一、長整型資料與CString類字串相互轉換 1.將長整型資料轉換為CString字串類 CString str; long ld; str.Format(_T("%ld"),ld); 2.將CString字串類轉換為長整型資料 CString str; long ld; ld=
C++整型和浮點型變數
整型變數 計算機記憶體是由位(bit)組成的,n位單元可設定為2的n次方個不同的值,比如8位單元可設定為256(2^8)個不同的值,C++整型變數的儲存有short, int, long,long
【LoadRunner】解決指令碼中字元型轉浮點型或由浮點型轉字元型
double atof( const char *string); //申明函式 Action() { float UpPrice1; float i=0.1; char* price1=(char*)calloc(10
C++整型、浮點型與字符串型相互轉換
小數位數 tde 參考 std str using atof char size 前言 整型、浮點型與字符串的相互轉換可以用自帶的函數來實現,本人使用的是vs2015,所以下面有些函數需要改變一下,請看下面的總結。 正文 一、整型轉字符串型 1. int轉為字符串
資料型別之整型;浮點型;字串;列表
一:整型int #======================================基本使用====================================== #1、用途:記錄年齡/等級/年等證書相關 #2、定義方式 age=18 #age=int(18) #資料型別轉換:可
深入理解計算機系統之整型與浮點型
在計算機儲存系統裡面,算術型別可以分為兩類:整型(intergral type,包括字元和布林型別在內)和浮點型。在看簡單地看了深入理解計算機系統的第二章後,有了稍微深刻但是有非常淺顯的理解,然後又看了阮師兄的一篇博文,所以做了一點筆記。 下面先來看一個例子程
十六進位制轉換成整型和浮點型
1、十六進位制hex轉換為整型 思路:這個比較簡單,只需要進行移位即可,整型在計算機本質的儲存是二進位制 //int is 4 char,need the input is array with four hex; int char4_int(unsigned char
MFC->整型、浮點型轉字串(Format函式)
在MFC程式中,CString既可以處理Unicode標準的字串,也可以處理ANSI標準的字串。 FormatVC各種字串轉換用於轉換的格式字元 %c
整型與浮點型資料在計算機記憶體中的儲存
1、型別的歸類 整型家族:char、unsigned char、signed char //對於char來說,標準裡並不預設其為有符號還是無符號的,這個結果取決於編譯器 short ( signed shor
Java中String字串轉整型或浮點型
學習筆記: 轉換為浮點型: 使用Double或者Float的parseDouble或者parseFloat方法進行轉換 String s = "123.456 "; //要確保字串為一個數值,否則會出異常 double d = D
【C#基礎】輸入一個字元,判定它是什麼型別的字元(大寫字母,小寫字母,數字或者其它字元)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _02_判斷使用者輸入字元型別 { c
C#基礎-033 建立一個學員類,並設計三個欄位用於表示學生的成績(語文、數學、英語);然後定義一個數組表示一個班的學生(10人),依次輸入每個學生的資訊和成績,輸入的同時將學員的每科成績劃分等級
class Student { public double _chineseScore; public double _mathScore; pu
C# 基礎(十三)C# 軟體開發過程中,可執行檔案.exe 出現bug,該怎麼排查、解決:找到出現bug的位置
一、簡介 之前是完成了寫軟體,從而實現軟體的基本功能。到了今天,需要對自己寫的可執行檔案.exe找bug了。那麼下面,我將結合自己的軟體的使用過程中,講自己的經驗融入進來,解釋下什麼是bug、以及該怎麼找Bug。 二、Bug的分類 主要參考: https://blog.csdn.ne
C++ 基礎(五)使用vs2015封裝c++生成.dll檔案、.lib檔案、.h檔案後,給另一個工程使用:使用前,需配置標頭檔案(.h)靜態庫(.lib)和 動態庫(.dll )專案屬性
一、簡介 我是一個認真的人,要麼不寫,要麼我就把步驟、截圖、程式碼,一 一 附上,方便大家參考學習。 1、為什麼要生成DLL和lib? 就是為了給VS工程呼叫(比如C#呼叫、C++工程)。 2、C#為什麼要呼叫DLL和lib? C++寫的程
C語言中strlen求字串長度,求字元陣列長度(空字元,數字0,字元0,陣列部分初始化)
如下字元陣列or字串,用strlen函式求長度各是多少? char * p = "abc" 與 char a[] = "abc"兩種形式並不同,這在我另一篇博文中有提到。 char * str1 = "abc";