C語言類型轉換理解不同的基本類型為什么能夠進行運算

類型轉換

  • 1.類型轉換
    • 1.1隱式轉換
      • 1.2常用算術轉換
      • 1.2強制類型轉換

1.類型轉換

在執行算數運算時,計算機比C語言的限制更多。為了讓計算機執行算術運算,通常要求操作數用相同的大小(即為的數量相同),但是C語言卻允許混合使用基本類型。在這過程是由于編譯器會自動進行隱形轉換,當然C語言也允許程序員使用強制運算符執行顯示轉換。
首先討論隱式轉換

1.1隱式轉換

在這里插入圖片描述
解釋最常用的算術轉換

1.2常用算術轉換

算數轉換多用于二元運算符的操作數上,算數轉換是為了能安全地使用兩個操作數我們需要相應的數據類型。也就是往往我們進行提升,通俗來說就是一個存儲字節大的類型和一個存儲字節小的類型,我們傾向與使用都使用存儲字節大的類型
最常用的就是整形提升
表達式的整型運算要在CPU的相應運算器件內執?,CPU內整型運算器(ALU)的操作數的字節?度?
般就是int的字節?度,同時也是CPU的通?寄存器的?度。因此,即使兩個char類型的相加,在CPU執?時實際上也要先轉換為CPU內整型操作數的標準?度。
執行常用算術轉換的規則可以劃分成兩種情況

  • 任意操作數的類型是浮點型的情況。
    按照float->double->long double,倘若涵蓋了混合整數和浮點數類型的情況,那便將整形轉換成浮點型
    這就是為什么double sun=1.0/2等于0.000000
    因為默認所給數為整形,1和2都是整形執行除法得到整形0隱性轉換成double類型(默認保留六位小數)為0.000000
    而double sum=1.0/2,1.0默認為double類型而2默認為整形,提升整形2被隱性轉化為double類型,此時執行的就是為什么除法僅僅要求一個數為浮點數因為另一個操作數會提升
  • 兩個操作數的類型都不是浮點型的情況
    int->unsigned int->long int->unsigned long int

盡管提升方便了我們的計算,但也會導致某些隱蔽的編程錯誤
假設 int a=-10 unsigned int b=10
if(b>a),我們期望該條件為真。但由于提升我們會將有符號數int轉換為無符號數unsigned int也就是說我們會把符號位1當成數來表示,因此a會變成一個極大數此時條件為假

1.2強制類型轉換

(類型名)表達式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35897.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35897.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35897.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java基礎:常用類(四)

Java基礎:常用類(四) 文章目錄 Java基礎:常用類(四)1. String字符串類1.1 簡介1.2 創建方式1.3 構造方法1.4 連接操作符1.5 常用方法 2. StringBuffer和StringBuilder類2.1 StringBuffer類2.1.1 簡介2.1.2 …

智能電能表如何助力智慧農業

智能電能表作為智能電網數據采集的基本設備之一,不僅具備傳統電能表基本用電量的計量功能,還具備雙向多種費率計量功能、用戶端控制功能、多種數據傳輸模式的雙向數據通信功能以及防竊電功能等智能化的功能。這些功能使得智能電能表在農業領域的應用具有…

基于深度學習的圖像去霧

基于深度學習的圖像去霧 圖像去霧是指從有霧的圖像中恢復清晰圖像的過程。傳統的圖像去霧方法(如暗原色先驗、圖像分層法等)在某些情況下表現良好,但在復雜場景下效果有限。深度學習方法利用大量的數據和強大的模型能力,在圖像去…

【滲透測試】小程序反編譯

前言 在滲透測試時,除了常規的Web滲透,小程序也是我們需要重點關注的地方,微信小程序反編譯后,可以借助微信小程序開發者工具進行調試,搜索敏感關鍵字,或許能夠發現泄露的AccessKey等敏感信息及數據 工具…

【PHP小課堂】PHP中PRGE正則函數的學習

PHP中PRGE正則函數的學習 正則表達式的作用想必不用我多說了,大家在日常的開發中或多或少都會接觸到。特別是對于一些登錄(郵箱、手機號)以及網頁爬蟲來說,正則表達式就是神器一般的存在。在 PHP 中,有兩種處理正則表達…

ChatGPT在用戶交互過程中如何實現自我學習和優化?

ChatGPT的自我學習和優化:深度解析與未來展望 在人工智能領域,ChatGPT的出現標志著自然語言處理技術的一大飛躍。作為一個先進的語言模型,ChatGPT不僅能夠與用戶進行流暢的對話,還能夠通過自我學習和優化來不斷提升其性能。本文將…

【SkiaSharp繪圖11】SKCanvas屬性詳解

文章目錄 SKCanvas構造SKCanvas構造光柵 Surface構造GPU Surface構造PDF文檔構造XPS文檔構造SVG文檔SKNoDrawCanvas 變換剪裁和狀態構造函數相關屬性DeviceClipBounds獲取裁切邊界(設備坐標系)ClipRect修改裁切區域IsClipEmpty當前裁切區域是否為空IsClipRect裁切區域是否為矩形…

JFreeChart 生成Word圖表

文章目錄 1 思路1.1 概述1.2 支持的圖表類型1.3 特性 2 準備模板3 導入依賴4 圖表生成工具類 ChartWithChineseExample步驟 1: 準備字體文件步驟 2: 注冊字體到FontFactory步驟 3: 設置圖表具體位置的字體柱狀圖:餅圖:折線圖:完整代碼&#x…

【QT】Svg圖標

目錄 SVGQT繪制SVG流程 SVG 一般而言,QSS是無法直接使用svg圖像的。 那如何才能顯示svg呢?我們知道svg的好處有很多,如矢量圖,體積小等等 svg本來就是一個document(可參考12),QT提供了QSvgRend…

二叉樹深度優先搜索(非遞歸實現,迭代法)

目錄 為什么可以用迭代法實現二叉樹的前后中序遍歷? 前序遍歷 后序遍歷 中序遍歷 為什么可以用迭代法實現二叉樹的前后中序遍歷? 因為遞歸的實現本質是,每次遞歸調用都會把函數的局部變量、參數值和返回地址等壓入調用棧中,然…

web期末作業設計網頁

設計一個網頁作為期末作業是一個很好的機會來展示你的前端開發技能。以下是一些步驟和建議,幫助你完成這個項目: 1. 確定網頁主題和目的 決定你的網頁是關于什么的(例如:個人博客、在線商店、公司網站、信息發布平臺等&#xff…

國產車規MCU OTA方案總結

目錄 1. 旗芯微FC4150 OTA 2. 云途YTM32B1MD OTA 3.小結 今天沒有廢話,啪一下很快,把目前接觸到的國內帶eFlash的車規MCU硬件OTA方案做一個梳理。 1. 旗芯微FC4150 OTA 旗芯微FC4150是基于ARM Cortex(快去審核下官網介紹,少了個T)-M4F內…

入門者必看-Ansible:自動化運維的利器

1. 引言 在當今快速變化的IT環境中,自動化成為了提升工作效率和確保系統一致性的重要手段。Ansible作為一個開源的自動化工具,因其簡單易用、功能強大而廣受歡迎。本文將深入探討Ansible的概念、架構、體系結構、搭建過程、常用操作方式以及使用場景&…

openGauss Developer Day 2024丨MogDB實現數據庫技術跨越,Ustore引擎革新存儲新境界

openGauss Developer Day 2024 6月21日,openGauss Developer Day 2024在北京昆泰嘉瑞文化中心成功召開。大會聚集學術專家、行業用戶、合作伙伴和開發者,共同探討數據庫面向多場景的技術創新,分享基于 openGauss 的行業聯合創新成果及實踐案例…

探索PHP中的魔術常量

PHP中的魔術常量(Magic Constants)是一些特殊的預定義常量,它們在不同的上下文中具有不同的值。這些常量可以幫助開發者獲取文件路徑、行號、函數名等信息,從而方便調試和日志記錄。本文將詳細介紹PHP中的魔術常量,幫助…

web前端——javaScript

目錄 一、javaScript概述 1.javaScript歷史 2.JavaScript與html,css關系 二、基本語法 ①放在head中 ②放在 body中 ③寫在外部的.js文件中 1.變量 2.數據類型 3.算術運算符 4.邏輯運算符 5.賦值運算 6.邏輯運算符 7.條件運算符 8.控制語句 三、函數 1…

智能掃地機器人環境感知與地圖構建優化方案

以下是一個針對智能掃地機器人程序中環境感知與地圖構建問題的具體解決方案,參考了之前文章中的相關技術和信息: 智能掃地機器人環境感知與地圖構建優化方案 一、引入高精度傳感器 激光雷達(LiDAR):使用高精度激光雷達…

模板語法輪播

1.常用的視圖容器組件 view類似于div進行使用 <div></div><view></view> scroll-view實現滾動列表效果 <scroll-view scroll-y> <view></view> <view></view> <view></view> </scroll-view> …

數據庫死鎖解決

一、Oracle死鎖查看和解決辦法匯總 由于生產的tomcat 經常有假死問題&#xff0c;困擾很久&#xff0c;最后發現有死鎖&#xff0c;解決辦法分享 1.1、查看死鎖 1.1.1、用dba用戶執行以下語句 select username,lockwait,status,machine,program from v$session where sid in …

Arduino - 按鈕 - 長按短按

Arduino - Button - Long Press Short Press Arduino - 按鈕 - 長按短按 Arduino - Button - Long Press Short Press We will learn: 我們將學習&#xff1a; How to detect the button’s short press 如何檢測按鈕的短按How to detect the button’s long press 如何檢測…