最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

C語言的問題 之 有符號數和無符號數的計算

2021-01-26 12:43 作者:GXTon_阿通  | 我要投稿


參與計算的兩個變量,類型不同,則需要先轉換成同一類型.

然后進行計算

?轉換的時候,為了保證精度不降低,需要向數據增長的方向進行轉換.

比如stm32單片機中 char :8位? int:32位? long long:64位

這里會存在bug: 在轉換的時候C語言只考慮了長度,沒有考慮到符號位.

比如,int->unsigned 轉換的時候.

圖片來源:https://blog.csdn.net/qq_47406941/article/details/112707018

所有浮點運算都以雙精度精心計算.即如果是兩個float,那么計算的時候也是先轉換成double

再進行計算.

有"不符合人性"的情況:

如果兩個數據,一個有符號,一個無符號,則轉換成無符號.

那么有人會說這樣不就錯了嗎?的確,在C語言中就是會輸出錯誤的結果...

還有個"不符合人性"的情況:

char,short,unsigned char ,nusigned short 類型,

也就是比int短的類型,在進行運算的時候,必須轉換成int型.

這里 char 轉換成int 要進行位的擴展,這個時候就會出問題:

這樣就可能會有多補了好幾個1的情況:

顯然是C語言不和里的地方,但是大家都要遵守

還有"精度損失"的情況

在賦值運算的時候,兩邊數據不同類型.

賦值號右邊的類型將轉換為左邊的類型.

a=b? 如果a是int類型,b是float類型.

b=1.78然后賦值給a,那么a只保留整數部分...C語言,連四舍五入都不計算的...


http://bbs.itheima.com/thread-4473-1-1.html

還有移位的東西:


C語言的問題 之 有符號數和無符號數的計算的評論 (共 條)

分享到微博請遵守國家法律
三穗县| 商洛市| 周至县| 柏乡县| 铜鼓县| 长治县| 花垣县| 临海市| 光山县| 商都县| 宜兴市| 博湖县| 荆州市| 缙云县| 丽水市| 宁国市| 肇东市| 布拖县| 泊头市| 长兴县| 韩城市| 藁城市| 凤翔县| 岐山县| 江口县| 平安县| 湟源县| 汉源县| 离岛区| 呼和浩特市| 湄潭县| 朝阳县| 文水县| 尉犁县| 广州市| 萝北县| 聊城市| 兴城市| 海南省| 温州市| 宁海县|