国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

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語言的問題 之 有符號數和無符號數的計算的評論 (共 條)

分享到微博請遵守國家法律
榆社县| 九台市| 平安县| 大同市| 米易县| 沙河市| 郓城县| 太保市| 梨树县| 澜沧| 龙游县| 宁南县| 金塔县| 马公市| 岫岩| 内丘县| 清苑县| 奇台县| 琼结县| 苍梧县| 越西县| 玛曲县| 股票| 永德县| 子长县| 辽宁省| 哈密市| 乌鲁木齐县| 鲁甸县| 囊谦县| 安阳市| 凤山县| 漯河市| 望江县| 琼海市| 枞阳县| 个旧市| 连城县| 乌鲁木齐县| 交口县| 汨罗市|