-
1 # 教女朋友學程式設計
-
2 # 張之一
可以的:
字元本質上是一個位元組所能表達數值0~255的“編碼”,字元"9"的ascii編碼是十六進位制的0x39,即十進位制的57,所以:
9*"9"=9*57=513
有一個概念必須清楚,就是任何儲存於計算機的資料(數字、字元、機器指令、圖片、語音、影片……)都只能以二進位制的形式存放在一個或多個位元組中。
-
3 # 隔壁老西工
首先答案是可以。字元9也是用ASCII編碼在計算機裡面,也是一個數字,只不過字元9得真正值是57,可以在下表查下:
所以:
"9"*9
實際上是:
57*9
-
4 # EXCEL進階課堂
先說結論:c語言中,字元9是可以與整數9直接相乘的,得到的結果是513.
1 為什麼字元9可以與整數9相乘?首先我們要明白字元在記憶體當中是以什麼樣的形式儲存的。在計算機當中,字元都是以它對應的ASCII碼錶示(美國資訊交換標準程式碼),而ASCII碼不管用什麼進製表示,它最終表示的是一個整數。如‘9’,它的ASCII碼值用十進位制表示為57。所以,看上去是字元9在做相乘,實質上是用它的ASCII碼值在做相乘。
2 字元9與整數9是如何相乘的?表示式:‘9’*9,在C語言中如何運算的呢。
乘運算子是雙目遠算符,也就是要求有兩個運算元,如上圖如示,運算元1和運算元2。在計算前,要求兩個運算元的型別要保持一致,而現在運算元1是字元型,而運算元2是整型(預設為int型),兩個運算元型別並不一致,所以需要進行型別轉換。
在C語言當中,資料型別轉換有兩種:其一,自動型別轉換;其二,強制型別轉換。在這裡在,它會使用自動型別轉換,可以理解為是C系統當中自動完成的,不需要程式設計師參與的。根據自動型別的轉換原則,字元型會自動轉為int型,而‘9’轉換為int型,就是取它的ASCII碼值:57。
完成轉換以後,就用57*9,答案自然是513。
以上,就是進階君對於這個問題的回答。
-
5 # 二師兄programmer
你好,我是比特幣二師兄,一個會投資的程式猿。
在C語言中,字元9可以與整數9直接相乘。原因如下:
1、一般情況下不同型別的資料進行運算子操作的時候,會進行預設的型別轉換,而且一般由低精度轉為高精度的型別,在進行運算操作。
具體的轉換規則如下:
char -> int -> unsigned int -> long -> unsigned long -> long long -> unsigned long long -> float -> double -> long double。
2、每一個字元其實都會對應一個ASCLL碼,而部分的字元對應的ASCLL碼是數字。一般運算的時候回預設將字元轉換為ASCLL碼進行運算。
例如本例子中的字元9所對應的的ASCLL碼為57。
下面我們做一個簡單的例子來實現字元9和整數9相乘,具體程式碼如下:
從這個程式碼除錯正可以看到,我們上面所說的是正確的,即字元9會轉換為其對應的ASCLL碼57來與整數9相乘。
回覆列表
可以的
因為字元本身也是一個0-255的整數,二者相乘,型別最終是 轉化為整數型
所以 答案很確定,是可以的!!!