C連載11-可移植類型、double、float

来源:https://www.cnblogs.com/ruigege0000/archive/2020/06/30/13211298.html
-Advertisement-
Play Games

一、可移植類型舉例 1.系統不支持“精確寬度整數類型”怎麼辦? 最小寬度類型:一些類型名保證所表示的類型一定是至少有指定寬度的最小整數類型。 使用上述定義的類型,例如:int_least8_t是可以容納8位有符號整數值類型中的寬度最小的類型的一個別名,如果某系統的最小整數類型是16位,可能不會定義i ...


一、可移植類型舉例

1.系統不支持“精確寬度整數類型”怎麼辦?

最小寬度類型:一些類型名保證所表示的類型一定是至少有指定寬度的最小整數類型。

  • 使用上述定義的類型,例如:int_least8_t是可以容納8位有符號整數值類型中的寬度最小的類型的一個別名,如果某系統的最小整數類型是16位,可能不會定義int8_t類型。儘管如此,該系統可能然會使用int_least8_t類型,但是可能把該類型實現為16位整數類型。

2.列印類型的轉換有使用%d也有%ld的,該怎麼辦?

  • C語言提供了一些字元串巨集來顯示可移植類型。
  • 例如:inttypes.h頭文件中定義了PRId32字元串巨集,代表列印32位有符號值的合適轉換說明。
#include<stdio.h>
#include<inttypes.h>  //支持可移植類型
int D11_1_altnames(void) {
 int32_t me32;  //me32是一個32為有符號的整形變數
 me32 = 45933945;
 printf("First,assume int32_t is int:");
 printf("me32 = %d\n", me32);
 printf("Next,let's not make any assumptions.\n");
 printf("Instead,use a \"macro\" from inttpes.h:");
 printf("me32 = %" PRId32 "\n", me32);

 return 0;
}
 

運行結果
11.1

釋義
在程式的最後一個printf()中,參數PRI32被定義在inttypes.h中的d所替換,因而這條語句等價於

printf("me32 = %""d""\n",me32);

在C語言中,可以把多個連續的字元串組成一個字元串,依然等價於

printf("me32 = %d\n",me32);

二、float、double、long double

1.C中的規定

  • C規定float類型必須至少能表示6位有效數字,且取值範圍至少為10^-3710^37
  • 通常系統存儲一個浮點數要占用32位,其中8位用於存儲指數的值和符號,其餘24位表示非指數部分及其符號(也稱為尾數或者有效數)。
  • double占用64位而不是32位,不同系統多出來的32位有的用於表示指數,擴大表示範圍;有的用於表示有效數字部分,提高精度。
  • long double來滿足更高精度的要求,然而C只保證long double類型至少與double類型精度相同。

2.浮點型常量

  • 可以這樣表示3.1541.24e12.8E12100.

註意點:不要在浮點型常量中間加空格,如:8.3 E12和這樣是錯的

  • 浮點數預設是double類型,如果是float需要尾碼加F或f;如果是long double需要尾碼加L或l
  • C99標準添加了一種新的浮點型常量格式——用十六進位表示浮點型常量, 即在十六進位數前面加上0x或0X,用p和P分別替代e和E,用2的冪代替10的冪,·如:0x1.ap12,但並非所有編譯器支持這個特性。

三、源碼:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 需求:1、點擊新增一欄商品信息,表單驗證區分 2、輸入SKU編碼,帶出當前行的產品名稱,品牌及單位 解決: ...
  • 本文將以UI設計師轉型做web前端作為案例,詳細解讀學web前端該學習哪些專業知識!當然也適用於所有想轉型web前端的親們! 如何學習web前端知識轉型? 不少UI設計師想要學習web前端知識,一方面是喜歡那些華麗的網頁特效,另一方面則是想成為全棧式UI設計師。 1、HTML/CSS學習 第一階段, ...
  • 使用插件: vue-i18n 1. 安裝: npm install vue-i18n 2. 目錄結構 // i18n.js import Vue from 'vue' import VueI18n from 'vue-i18n' import messages from './lang' Vue.u ...
  • 預設表單提示是英文的,我們可以安裝語言包構建多語言環境。 根據版本選擇命令 For Laravel 7.x : run composer require caouecs/laravel-lang:~6.0 For Laravel 6.x : run composer require caouecs/ ...
  • 1.代碼生成器: [正反雙向](單表、主表、明細表、樹形表,快速開發利器)freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本、處理類、service等完整模塊2.多數據源:(支持同時連接無數個資料庫,可以不同的模塊連接不同數的據庫)支持N個數據源3.阿裡資料庫連 ...
  • 基於Nexus搭建私服 1. 工作流程 2. 倉庫類型 hosted 私服倉庫 proxy倉庫 遠程倉庫 group倉庫 組倉庫,裡面可以設置組合多個倉庫。按順序獲取jar。 3. 預設倉庫 安裝好了Nexus後,會內置幾個maven的預設倉庫。可自定義倉庫。 maven-central proxy ...
  • 1 前言 相信不少人聽過這麼一句話: 人類的本質是復讀機。 在軟體開發領域也一樣,我們總是想尋找更好地方式複製優秀的邏輯或系統。最核心的方法是抽取通用邏輯和組件,把差異化的東西介面化或配置化,達到復用的效果。如Java的Build Once, Run Everywhere,還有Spring的強大的抽 ...
  • 引用原文 原文鏈接 http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/ 問題描述 直入本文要描述的問題:網站流量上來了,高併發負載是不可避免滴問題了,當服務端需要處理大量耗時的任務時,我們一般都會考 ...
一周排行
    -Advertisement-
    Play Games
  • 比如要拆分“呵呵呵90909086676喝喝999”,下麵當type=0返回的是中文字元串“呵呵呵,喝喝”,type=1返回的是數字字元串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...
  • Swagger一個優秀的Api介面文檔生成工具。Swagger可以可以動態生成Api介面文檔,有效的降低前後端人員關於Api介面的溝通成本,促進項目高效開發。 1、使用NuGet安裝最新的包:Swashbuckle.AspNetCore。 2、編輯項目文件(NetCoreTemplate.Web.c ...
  • 2020 年 7 月 30 日, 由.NET基金會和微軟 將舉辦一個線上和為期一天的活動,包括 微軟 .NET 團隊的演講者以及社區的演講者。本次線上大會 專註.NET框架構建微服務,演講者分享構建和部署雲原生應用程式的最佳實踐、模式、提示和技巧。有關更多信息和隨時瞭解情況:https://focu... ...
  • #abp框架Excel導出——基於vue #1.技術棧 ##1.1 前端採用vue,官方提供 UI套件用的是iview ##1.2 後臺是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:碧茂大數據 PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取 input()輸入 Python提供了 input() 內置函數從標準輸入讀入一 ...
  • 從12年到20年,python以肉眼可見的趨勢超過了java,成為了當今It界人人皆知的編程語言。 python為什麼這麼火? 網路編程語言搜索指數 適合初學者 Python具有語法簡單、語句清晰的特點,這就讓初學者在學習階段可以把精力集中在編程對象和思維方法上。 大佬都在用 Google,YouT ...
  • 在社會上存在一種普遍的對培訓機構的學生一種歧視的現象,具體表現在,比如:當你去公司面試的時候,一旦你說了你是培訓機構出來的,那麼基本上你就涼了,那麼你瞞著不說,然後又通過了面試成功入職,但是以後一旦在公司被髮現有培訓經歷,可能會面臨被降薪,甚至被辭退,培訓機構出來的學生,在用人單位眼裡就是能力低下的 ...
  • from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...