當前位置:首頁 » 編程語言 » c語言轉換
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言轉換

發布時間: 2022-01-15 22:58:51

c語言數字和字元的相互轉換

#include "stdio.h"

#include "math.h"

main()

{

char change(int x,int n);

int x,i,j;

char s[8],y;

printf("請輸入整數:");

scanf("%d",&x);

for(i=0;i<20;i++)

{

y=change(x,i);

if(y=='')

{

s[i]='';

break;

}

s[i]=y;

}

for(i=7;i>=0;i--)//由於字元存儲到字元數組時順序與原來相反,故在此將字元順序倒輸

if(s[i]=='')

for(j=i-1;j>=0;j--)

printf("%c",s[j]);

printf(" ");

}

char change(int x,int n)

{

int i;

char g;

for(i=0;i<=n;i++)

{

switch(x%10)

{

case 0 :g='0';break;

case 1 :g='1';break;

case 2 :g='2';break;

case 3 :g='3';break;

case 4 :g='4';break;

case 5 :g='5';break;

case 6 :g='6';break;

case 7 :g='7';break;

case 8 :g='8';break;

case 9 :g='9';break;

}

if(x==0)

{

g='';

break;

}

x=x/10;

}

return(g);

}

在C/C++語言中沒有專門的字元串變數

通常用字元數組來存放字元串。字元串是以「」作為結束符。C/C++提供了豐富的字元串處理函數,下面列出了幾個最常用的函數。

字元串是面試的重點考查部分的相關知識,通過考查字元串的相關知識可以考察程序員的編程規范以及編程習慣。並且其中包括了許多知識點,例如內存越界、指針與數組操作等。許多公司在面試時會要求應聘者寫一段復制字元串或字元串子串操作的程序。本章列舉了一些與字元串相關的面試題,有些題目要求較高的編程技巧。

以上內容參考:網路-字元串

Ⅱ C語言如何轉換數據類型

c語言類型轉換分級別,一般多是:
默認狀態:低級向高級轉換,級別高低(小到大):int,float,double,(注意char只可以和int之間轉換);
若要高級向低級轉換:就要用到強制類型轉換符!如int(7.7)=7;

Ⅲ c語言轉換

C語言都是向高精度的類型轉換,
有0.5參與運算,就轉成double類型了。

Ⅳ C語言強制轉換

強制轉換在編寫socket的時候用的比較多,因為經常要將獲得的數據流轉換成需要的格式。也有使用ASCii傳輸的,這個不需要轉換,但是不支持中文傳輸。
其餘的時候用的也多,經常將文本框內的數值轉來轉去的。

Ⅳ c語言轉換函數

sizeof是求參數的內存大小,如果要求字元串的程度的話最好使用strlen(),它在string.h
中被定義。itoa函數需要接受待轉換的字元串的長度。具體可以網路一下
希望能幫到你!
大笨兔 :)

Ⅵ C語言數據類型的轉換

讓我來說說這個問題吧。
一.自動轉換
自動轉換遵循以下規則:
1) 若參與運算量的類型不同,則先轉換成同一類型,然後進行運算。
2) 轉換按數據長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。
a.若兩種類型的位元組數不同,轉換成位元組數高的類型
b.若兩種類型的位元組數相同,且一種有符號,一種無符號,則轉換成無符號類型
3)所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。
4)char型和short型參與運算時,必須先轉換成int型。
5)在賦值運算中,賦值號兩邊量的數據類型不同時,賦值號右邊量的類型將轉換為左邊量的類型。如果右邊量的數據類型長度左邊長時,將丟失一部分數據,這樣會降低精度,丟失的部分按四捨五入向前舍入。
二.隱式轉換
隱式類型轉換分三種,即算術轉換、賦值轉換和輸出轉換。
1.算術轉換
進行算術運算(加、減、乘、除、取余以及符號運算)時,不同類型數招必須轉換成同一類型的數據才能運算,算術轉換原則為:
在進行運算時,以表達式中最長類型為主,將其他類型位據均轉換成該類型,如:
(1)若運算數中有double型或float型,則其他類型數據均轉換成double類型進行運算。
(2)若運算數中最長的類型為long型.則其他類型數均轉換成long型數。
(3)若運算數中最長類型為int型,則char型也轉換成int型進行運算。算術轉換是在運算過程中自動完成的。
2.賦值轉換
進行賦值操作時,賦值運算符右邊的數據類型必須轉換成賦值號左邊的類型,若右邊的數據類型的長度大於左邊,則要進行截斷或舍入操作。
下面用一實例說明:
char ch;
int i,result;
float f;
double d;
result=ch/i+(f*d-i);
(1)首先計算 ch/i,ch → int型,ch/i → int型。
(2)接著計算 f*d-i,由於最長型為double型,故f→double型,i→double型,f*d-i→double型。
(3)(ch/i) 和(f*d-i)進行加運算,由於f*d-i為double型,故ch/i→double型,ch/i+(f*d-i)→double型。
(4)由於result為int型,故ch/i+(f*d-i)→double→int,即進行截斷與舍入,最後取值為整型。
3.輸出轉換
在程序中將數據用printf函數以指定格式輸出時,當要輸出的鹽據類型與輸出格式不符時,便自動進行類型轉換,如一個long型數據用整型格式(%d)輸出時,則相當於將long型轉換成整型(int)數據輸出;一個字元(char)型數據用整型格式輸出時,相當於將char型轉換成int型輸出。
注意:較長型數據轉換成短型數據輸出時,其值不能超出短型數據允許的值范圍,否則轉換時將出錯。如:
long a=80000;
printf("%d",a);
運行結果為14464,因為int型允許的最大值為32767,80000超出此值,故結果取以32768為模的余數,即進行如下取余運算:
(80000-32768)-32768=14464;
輸出的數據類型與輸出格式不符時常常發生錯誤,如:
int d=9;
printf("%f",d);

float c=3.2;
printf("%d",c);
將產生錯誤的結果。
同一句語句或表達式如果使用了多種類型的變數和常量(類型混用),C 會自動把它們轉換成同一種類型。以下是自動類型轉換的基本規則:
1. 在表達式中,char 和 short 類型的值,無論有符號還是無符號,都會自動轉換成 int 或者 unsigned int(如果 short 的大小和 int 一樣,unsigned short 的表示範圍就大於 int,在這種情況下,unsigned short 被轉換成 unsigned int)。因為它們被轉換成表示範圍更大的類型,故而把這種轉換稱為「升級(promotion)」。
2. 按照從高到低的順序給各種數據類型分等級,依次為:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。這里有一個小小的例外,如果 long 和 int 大小相同,則 unsigned int 的等級應位於 long 之上。char 和 short 並沒有出現於這個等級列表,是因為它們應該已經被升級成了 int 或者 unsigned int。
3. 在任何涉及兩種數據類型的操作中,它們之間等級較低的類型會被轉換成等級較高的類型。
4. 在賦值語句中,= 右邊的值在賦予 = 左邊的變數之前,首先要將右邊的值的數據類型轉換成左邊變數的類型。也就是說,左邊變數是什麼數據類型,右邊的值就要轉換成什麼數據類型的值。這個過程可能導致右邊的值的類型升級,也可能導致其類型降級(demotion)。所謂「降級」,是指等級較高的類型被轉換成等級較低的類型。
5. 作為參數傳遞給函數時,char 和 short 會被轉換成 int,float 會被轉換成 double。使用函數原型可以避免這種自動升級。
三.強制轉換
強制類型轉換是通過類型轉換運算來實現的。其一般形式為:(類型說明符)(表達式)其功能是把表達式的運算結果強制轉換成類型說明符所表示的類型。自動轉換是在源類型和目標類型兼容以及目標類型廣於源類型時發生一個類型到另一類的轉換。例如: (float) a 把a轉換為實型,(int)(x+y) 把x+y的結果轉換為整型。在使用強制轉換時應注意以下問題:

1.類型說明符和表達式都必須加括弧(單個變數可以不加括弧),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。

2.無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的數據長度進行的臨時性轉換,而不改變數據說明時對該變數定義的類型。

例1:

main()

{

float f=5.75;

printf("(int)f=%d,f=%f\n",(int)f,f);

}

f<--5.75

將float f強制轉換成int f float f=5.75;printf("(int)f=%d,f=%f\n",(int)f,f); 本例表明,f雖強制轉為int型,但只在運算中起作用, 是臨時的,而f本身的類型並不改變。因此,(int)f的值為 5(刪去了小數)而f的值仍為5.75。

Ⅶ C語言中的轉換

計算機中常用的數的進制主要有:二進制、八進制、十六進制,學習計算機要對其有所了解。
2進制,用兩個阿拉伯數字:0、1;
8進制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進制,用十個阿拉伯數字:0到9;
16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這五個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。 以下簡介各種進制之間的轉換方法:
一、二進制轉換十進制
例:二進制 「1101100」
1101100 ←二進制數
6543210 ←排位方法 例如二進制換算十進制的演算法:
1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20
↑ ↑
說明:2代表進制,後面的數是次方(從右往左數,以0開始)
=64+32+0+8+4+0+0
=108 二、二進制換算八進制
例:二進制的「10110111011」
換八進制時,從右到左,三位一組,不夠補0,即成了:
010 110 111 011
然後每組中的3個數分別對應4、2、1的狀態,然後將為狀態為1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
結果為:2673 三、二進制轉換十六進制
十六進制換二進制的方法也類似,只要每組4位,分別對應8、4、2、1就行了,如分解為:
0101 1011 1011
運算為:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由於10為A,所以11即B)
1011 = 8+2+1 = 11(由於10為A,所以11即B)
結果為:5BB 四、二進制數轉換為十進制數
二進制數第0位的權值是2的0次方,第1位的權值是2的1次方……
所以,設有一個二進制數:0110 0100,轉換為10進制為:
計算: 0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 五、八進制數轉換為十進制數
八進制就是逢8進1。
八進制數採用 0~7這八數來表達一個數。
八進制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方……
所以,設有一個八進制數:1507,轉換為十進制為:
計算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
結果是,八進制數 1507 轉換成十進制數為 839 六、十六進制轉換十進制
例:2AF5換算成10進制
直接計算就是: 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(別忘了,在上面的計算中,A表示10,而F表示15)、 現在可以看出,所有進制換算成10進制,關鍵在於各自的權值不同。
假設有人問你,十進數 1234 為什麼是 一千二百三十四?你盡可以給他這么一個算式: 1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100 十進制與二進制轉換之相互演算法
十進制轉二進制: 用2輾轉相除至結果為1 將余數和最後的1從下向上倒序寫 就是結果 例如302 302/2 = 151 餘0 151/2 = 75 餘1 75/2 = 37 餘1 37/2 = 18 餘1 18/2 = 9 餘0 9/2 = 4 餘1 4/2 = 2 餘0 2/2 = 1 餘0 故二進制為100101110 二進制轉十進制 從最後一位開始算,依次列為第0、1、2...位 第n位的數(0或1)乘以2的n次方 得到的結果相加就是答案 例如:01101011.轉十進制: 第0位:1乘2的0次方=1 1乘2的1次方=2 0乘2的2次方=0 1乘2的3次方=8 0乘2的4次方=0 1乘2的5次方=32 1乘2的6次方=64 0乘2的7次方=0 然後:1+2+0 +8+0+32+64+0=107. 二進制01101011=十進制107. 一、二進制數轉換成十進制數 由二進制數轉換成十進制數的基本做法是,把二進制數首先寫成加權系數展開式,然後按十進制加法規則求和。這種做法稱為"按權相加"法。 二、十進制數轉換為二進制數 十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。 1. 十進制整數轉換為二進制整數 十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。 2.十進制小數轉換為二進制小數 十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。 然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。 1.二進制與十進制的轉換 (1)二進制轉十進制<BR>方法:"按權展開求和" 例: (1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10 =(8+0+2+1+0+0.25)10 =(11.25)10 (2)十進制轉二進制 · 十進制整數轉二進制數:"除以2取余,逆序輸出" 例: (89)10=(1011001)2 2 89 2 44 …… 1 2 22 …… 0 2 11 …… 0 2 5 …… 1 2 2 …… 1 2 1 …… 0 0 …… 1 · 十進制小數轉二進制數:"乘以2取整,順序輸出" 例: (0.625)10= (0.101)2 0.625 X 2 1.25 X 2 0.5 X 2 1.0 2.八進制與二進制的轉換 例:將八進制的37.416轉換成二進制數: 37 . 4 1 6 011 111 .100 001 110 即:(37.416)8 =(11111.10000111)2 例:將二進制的10110.0011 轉換成八進制: 0 1 0 1 1 0 . 0 0 1 1 0 0 2 6 . 1 4 即:(10110.011)2 =(26.14)8 3.十六進制與二進制的轉換<BR>例:將十六進制數5DF.9 轉換成二進制: 5 D F . 9 0101 1101 1111.1001 即:(5DF.9)16 =(10111011111.1001)2 例:將二進制數1100001.111 轉換成十六進制: 0110 0001 . 1110 6 1 . E 即:(1100001.111)2 =(61.E)16

Ⅷ c語言中如何把A和a轉換

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

Ⅸ c語言自動轉換

函數主體的解釋:
1.聲明一個雙精度型數據 num1,
2.聲明兩個整型數據 num2,sum,
3.給單精度型變數num1賦值為1.000000(雙精度型數值默認保留小數點後六位),
4.給整型變數num2賦值為2.5,在這里因為是將浮點數賦值給整型變數所以會將後面的小數部分丟掉而最終把2賦值給num2,
5.將變數num1和num2的值相加賦值給sum,這里是一個雙精度型數值num1(1.000000)和一個整型數值num2(2)相加,編譯器會把整型數值2向高一級轉換為雙精度型數值即2.000000,相加的結果為3.000000,最後將3.000000賦值給整型變數sum時,他會只去整數部分,小數部分丟掉,所以sum為0;
6.列印num1與num2的和,結果為:num1+num2=3.000000;
7.列印sum的值,結果為: 3,

在轉換過程中,只有數值發生類型變化,該變數的類型是不變的。

書上有些錯的

Ⅹ C語言數據類型如何轉換

C語言算術表達式的計算,在計算過程中,每一步計算所得結果的數據類型由參與運算的運算對象決定,相同數據類型的兩個對象運算,結果數據類型不變,不同數據類型的運算對象進行運算,結果的數據類型由高精度的運算對象決定。精度的高低:double>float>int
需要注意的是,數據類型的轉換是在計算過程中逐步進行的,整個表達式結果的數據類型一定與表達式中出現的精度最高的數據相同,但是具體得到數據值是逐步得到的,例如:int
x=1,y=3;
double
k=1573.267;
x
/
y
*
k
這個表達式計算結果的數據類型是double,
計算結果的答案是
0.0
因為在第一步
x/y
的計算中
結果是一個整型數據
0
第二步計算
0
*
1573.267
結果是一個double類型的數據,但數值是0.0
也就是說,算術表達式計算結果的數據類型與運算的優先順序沒有關系,一定具有表達式中精度最高的數據類型,但是具體得到數據結果數值,與優先順序可就有關系啦。