C的語法無法型別int轉換為char

2022-12-15 11:20:16 字數 3782 閱讀 7655

1樓:匿名使用者

不太懂你這**是幹嘛的?

至於你所說的錯誤是 code = (char)number + convert.tochar(number % 10);

這句**相加的時候(char)number 和 convert.tochar(number % 10) 會隱式轉換為int型的在相加,也就是說char型別的變數不能相加,相加時都會隱式轉換為int,當然相加的結果自然就是int型的了,但是你又將結果賦給一個char型別的變數,當然就會出錯啦!你可要把這句改成code = convert.

tochar(number + number % 10); 但是這樣又會有另一個異常,因為random.next()返回的隨機數太大,不能轉換為char型別,你應該在random.next()中加個引數,如random.

next(9),就是隨即產生一個0-9的隨機數

2樓:匿名使用者

不知道你想作什麼

(char)number + convert.tochar(number % 10);這種東西結果就是int型別

所以你把一個int型別轉給char的code就會出錯!

你的random出的來很大,使用種子限制一下

3樓:爸暉很想你

因為int不能隱式轉換為char型別的,但是也不能把char改成 (char)number改成convert.tochar,你想想,char是單個字元型別,兩個char型別相加還能是char型別嗎。

我有個笨辦法。。呵呵。如果你不見意,可以用一下

string strcode = "";

int number = 0;

char code = '\0';

system.random random = new random();

int code_i = 0;

for (code_i = 0; code_i <= 5; code_i++)

{number = random.next();

code = convert.tochar((char)number + convert.tochar(number % 10));

strcode += code.tostring();

4樓:來元彤

int型別 轉換為 char資料型別時

會造成 資料精度或者資料 的丟失

一般轉換為 低精度向高精度進行轉換

可以採用強制轉換 convert.tochar

c#高手進!為什麼char型別的可以直接賦值給int型別的,但反過來不行?

5樓:匿名使用者

可以通過的  怎麼會不行? 是因為你覺得輸出的是b?  那是因為a+1的值就是b,然後剛好你定義的char型別的變數是b, 然後你覺得輸出b是輸出了變數名?是這樣的麼?

6樓:匿名使用者

c#中隱式轉換相關,由高向低相容

char型別範圍是0-255

int型別範圍比char型別大,如果int型別能夠自動轉換成char型別(當int型值超過char型別可容納的範圍)勢必會造成數值範圍溢位,

這就是設計人員的初衷

7樓:放羊的小星星

可以吧。int就轉成對應ascii碼的字元了。

請教個c#char和int的轉換問題

8樓:

char和int可以轉換,因為char就是ascii碼呀,就是int,如65就**'a'。

char c = (char)65;

反過來也是一樣的

int i = (int)'a';

9樓:匿名使用者

int b;

string a = "............";

if (int.tryparse(a, out b))

c#如何將char型別轉換成int

10樓:紫影靈風

int a=convert.toint32(char),這個是最普通的轉換,即把字串(字元)型別的數字轉換為int型別

char a = 'b;

int b = (int)a;

這樣得到的結果就是98,是字元b(小寫)在ascii碼中對應的值

11樓:瘋狂**

直接就可以啊

假如 char s;

比如 int x = (int)s;

12樓:匿名使用者

convert.toint32(放char型別的值)

13樓:dragon元

convert.toint32()

c#怎麼把char轉換成int?

14樓:匿名使用者

一個char型別的字元在計算機中以int型別儲存(就是用數字代表,類似於二進位制),所以你轉換成int型別會得到莫名其妙的結果.可以先將char轉為string,然後再int.parse(char);親測可用

char a='1';

string a1=a.tostring();

//int result=(int)a1;

//結果會得到49(證明了一個char型別的'1'字元在計算機中用49來表示)

int result=int.parse(a1);

//得到結果為int型別的1

15樓:小人物看帖

char a = '5';

int b = convert.toint32(a.tostring());

16樓:匿名使用者

你把char轉成string 在轉int唄

17樓:匿名使用者

直接就可以啊

假如 char s;

比如 int x = (int)s;

c#中無法將int隱式轉換為int[]

18樓:

出錯的語句是int t = list;

c#的語法有嚴格的限制,型別不同時必須進行顯式或是隱式的轉化,若是不能轉換,便出現型別錯誤的提示的!

你的list是int型別的,而 t 則是一個int型別的.顯然,int無法隱式進和轉換的!所以就報出這樣的錯誤來!

如果改為int t = list;則這句就是正確的!這時兩者都是陣列型別了.

19樓:匿名使用者

int list

list是陣列型別;

int t=list[0]

這樣是可以的

一個陣列型別是弱型別,int是強型別

轉化的是list的某一個元素;不要搞錯了

20樓:

int t=list[下標]

我沒仔細看你的程式,所以下標是幾你自己來定。

21樓:

int= list[i];

沒仔細看下面**,不知道邏輯對不對

c#無法將型別"int"隱式轉換為"string"

22樓:

a007,a008,a010 三個變數已經定義成string型別了,不能再宣告為int

23樓:匿名使用者

你要轉換啊 ,你這樣肯定不行啊、

無法將型別「int」隱式轉換為「string」

這有什麼不對,電腦除錯時就顯示 所有的資料都是一系列的位,即一組0和1。char型別是用一個數字表示的unicode字符集中的一個字元。實際這個數字儲存0 65535之間的數字!從char型別到int型別,是可以隱式轉換的。int n aa char型別隱式地轉換為int型別string ee aa...

c中如何將string陣列轉換為int陣列

舉個bai例子。du string strarray a,b,c,d,e,f,g split new char int intarray c 3.0下用 此句zhi intarray array.convertall strarray,s int.parse s 2.0下用以下的語dao句替換 專上...

怎麼把int轉換為char型別,在java中怎麼把一個int型別轉為char 型別的啊

nt轉char實際是轉成ascll碼,int的資料bai可以是個位數,也du可以是更大的數,如果是個位數,可以用zhi編譯器自帶的函式變成char。int函式將返回實數向下取整後的整數值。語法格式為int number 其中的number是需要進行取整的實數。例如int 8.6 的返回值為8,而in...