1. 程式人生 > >C 基礎 (整形,字元型,浮點型)

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 就是字串響鈴的值。

對於字元而言,它佔用八位,同時它對應相應的整形。但是如果超過位數它如何處理呢?

#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[])
{    
   
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# 基礎十三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";