精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊一聊定點數和浮點數的存儲方式

存儲 存儲軟件
本文中所提到的都是基于intel x86Cpu,開發環境是基于windows 10 + vs2019。本片博客需要讀者自己明白十進制、十六進制、二進制之間的轉換,文中不會介紹轉換過程,需要了解詳細過程的情查找相關資料。

 [[345531]]

本文轉載自微信公眾號「編程學習基地」,作者DeRoy 。轉載本文請聯系編程學習基地公眾號。  

定點數和浮點數

本文中所提到的都是基于intel x86Cpu,開發環境是基于windows 10 + vs2019。本片博客需要讀者自己明白十進制、十六進制、二進制之間的轉換,文中不會介紹轉換過程,需要了解詳細過程的情查找相關資料。

首先我們簡單的介紹一下計算機中數據存儲的基礎知識,具體內容在大學課程《計算機組成原理》中有詳細的介紹。計算機中對數據的存儲是有兩種形式,一種是以定點數方式存儲即C/C++中的char、short、int、long、longlong,另一種就是以浮點數的方式存儲即C/C++中的float、double。

定點數中char、short、int、long、longlong存儲原理都是一樣的,只是長度不同,所以我們選取int型詳細介紹,浮點數中float、double原理也是一樣的.

其中,定點數和浮點數都是最高位表示符號位(0表示正數1表示負數)其余位表示數值,字節是倒敘存數(小端模式)的也就是說高字節在左邊低字節在右邊。

定點數

定點數比較簡單,計算機中存儲的是真實值,計算機采用4字節(32位)存儲int變量,例如:int value = 1 ; 則value轉化成二進制0000 0000 0000 0000 0000 0000 0000 0001為了書寫方便我們寫成16進制形式為00 00 00 01。由于計算機是倒敘存儲所以計算機中存儲為01 00 00 00。

浮點數

下面介紹一下浮點數float存儲,C/C++中float存儲標準是基于IEEE754,具體內容是一個數值,可以使用科學計數法方式表示,即可以寫成:

A * 2^n

其中A為尾數,2為底數,n為指數。

由于底數為2所以所有A都是大于1小于2,也就是都可以寫成1.xxxx*2的n次方,所以計算機為了節省空間,可以不存儲整數部分的1,因為所有的浮點數都有那個1我們轉換的時候把那個1算進去就可以了。n可以是正數也可以是負數(float需要加上127,double加上1023)。

浮點數的存儲是由符號位 (sign) + 指數位 (exponent) + 小數位 (fraction) 組成。

類型 符號位 指數 尾數
Float      1位(第31位) 8位(第23~30位) 23位(第0~22位)
Double   1位(第63位) 11位(第52~62位) 52位(第0~51位)

例如:float value = 12.5 ; 那么

定點數 浮點數

小數轉二進制方法:整數部分采用除 2 取余,小數部分采用乘 2 取整法

float計算機存儲(小端模式)即00 00 48 41

double計算機存儲(小端模式)即 00 00 00 00 00 00 29 40

查看內存驗證結果

  1. #include<stdio.h> 
  2. int main() 
  3.     float a = 12.5; 
  4.     float* p = &a; 
  5.  
  6.     double b = 12.5; 
  7.     double* pb = &b; 
  8.  
  9.     printf("%d\n", a); 
  10.     printf("%d\n", (int)a); 
  11.     printf("%d\n", *(int*)&a); 
  12.     return 0; 

通過斷點查看變量a,b的地址,通過地址用內存查看器查看對應的內存來驗證

VS2019運行至斷點時,菜單調試->窗口->內存->內存1

double

內存是不會騙人的,所以結果驗證無誤

大端小端

大端模式:指數據的高字節保存在內存的高地址

例如:12345( 0x3039 ) 的存儲順序是 0x30、0x39

小端模式:指數據的高字節保存在內存的低地址

例如:12345( 0x3039 ) 的存儲順序是 0x39、0x30

判斷大小端

方法一:

  1. #include<stdio.h> 
  2. int main(int argc, char *argv[]) 
  3.     int i = 0x12345678; 
  4.     char c = i; 
  5.     if (c == 0x78) 
  6.     { 
  7.         printf("小端\n"); 
  8.     } 
  9.     else 
  10.     { 
  11.         printf("大端\n"); 
  12.     } 
  13.     return 0; 

方法二:

  1. #include<stdio.h> 
  2. int main(void) 
  3.     int  a = 0x12345678; 
  4.     char *p = (char *)&a; 
  5.     if (0x78 == *p) 
  6.     { 
  7.         printf("小端\n"); 
  8.     } 
  9.     else 
  10.     { 
  11.         printf("大端\n"); 
  12.     } 
  13.     return 0; 

方法三:

  1. #include<stdio.h> 
  2. typedef union NODE 
  3.     int i; 
  4.     char c; 
  5. }Node; 
  6. int main(int argc, char *argv[]) 
  7.     Node node; 
  8.     node.i = 0x12345678; 
  9.     if (0x78 == node.c) 
  10.     { 
  11.         printf("小端\n"); 
  12.     } 
  13.     else 
  14.     { 
  15.         printf("大端\n"); 
  16.     } 
  17.     return 0; 

上期第四題

  1. #include<stdio.h> 
  2. int main() 
  3.     float a = 12.5; 
  4.     printf("%d\n", a); 
  5.     printf("%d\n", (int)a); 
  6.     printf("%d\n", *(int*)&a); 
  7.     return 0; 
  • printf("%d\n", a);

printf由于類型不匹配,所以,會把float直接轉成double,double 8字節,12.5f轉成十六進制:0x4029 0000 000 00000

計算機(小端模式下)存儲的值為:00 00 00 00 00 00 29 40

而我們的%d要求是一個4字節的int,對于double的內存布局,我們可以看到前四個字節是00,所以輸出自然是0了。

  • printf("%d\n", (int)a);

float強轉成int,省略掉小數部分,所有為12

  • printf("%d\n", (int)&a);

float 4個字節,12.5f轉成二進制是:0100 0001 0100 1000 0000 0000 0000 0000,十六進制是:0x41480000,十進制是:1095237632。

上期第10題

題目回顧:

  1. #include<stdio.h> 
  2. int main() 
  3.     int a = 3, b = 5; 
  4.     printf(&a["Ya!Hello! how is this? %s\n"], &b["junk/super"]); 
  5.     //等價printf("Hello! how is this? %s\n""super"); 
  6.     printf(&a["WHAT%c%c%c %c%c %c !\n"], 1["this"], 2["beauty"], 0["tool"], 0["is"], 3["sensitive"], 4["CCCCCC"]); 
  7.     return0; 

指針的另類用法:

  1. char arr[20] = "hello world"
  2. printf("%s\n", arr);        //從&arr[0]地址處開始讀取字符串到'\n'結束 輸出hello world 
  3. printf("%s\n", &arr[6]);    //從&arr[6]地址處開始讀取字符串到'\n'結束 輸出world 
  4. printf("%s\n", &6[arr]);    //從&arr[6]地址處開始讀取字符串到'\n'結束 輸出world 

arr[i] 其實就是 *(arr+i)也就是 *(i+arr),這個屬于語法規則,只是用的少。

  1. printf(&a["Ya!Hello! how is this? %s\n"], &b["junk/super"]); 
  2. //等價printf("Hello! how is this? %s\n""super"); 

在這里的"Ya!Hello! how is this? %s\n"是一個存儲在常量區的字符串

  1. char* p = "Ya!Hello! how is this? %s\n"
  2. char* p1 = "junk/super"
  3. printf(&a[p], &b[p1]); 
  4. printf(&p[3], &p1[5]); 

這里的數字3,5就是地址的偏移量

 

責任編輯:武曉燕 來源: 編程學習基地
相關推薦

2018-08-24 10:16:23

內存浮點數存儲

2020-09-15 12:57:46

C 語言浮點數內存

2024-08-23 08:43:08

2021-03-04 20:33:09

補碼小數符號位

2023-07-05 08:00:58

Redis數據庫

2017-10-16 10:42:27

前端JavaScript浮點數

2025-03-03 04:20:00

2018-07-03 08:48:48

對象存儲塊存儲

2018-06-25 09:32:44

2018-05-16 08:58:04

用戶畫像存儲

2011-05-25 14:10:38

浮點數

2015-12-02 10:21:34

JavaScript浮點數精度調整

2020-11-17 06:57:15

存儲互聯網用戶

2024-05-31 08:38:35

Python浮點數屬性

2018-04-27 09:22:21

數據存儲技巧

2023-06-02 07:45:39

2010-07-22 17:39:44

2021-10-19 14:04:28

C++類型數字

2023-07-06 13:56:14

微軟Skype

2017-12-26 10:19:14

大數據問題缺陷
點贊
收藏

51CTO技術棧公眾號

手机免费看av网站| 四虎影院一区二区三区| 久操视频免费在线观看| 秋霞在线一区| 欧日韩精品视频| 亚洲综合欧美日韩| 国产91免费在线观看| 99国产精品久久久久久久成人热 | 久久91精品国产| 亚洲观看黄色网| 六九午夜精品视频| 午夜影院在线观看欧美| 天天综合狠狠精品| 成人免费观看在线视频| 日本免费新一区视频| 欧美高清在线视频观看不卡| 尤物视频最新网址| av综合网页| 欧美性大战久久久久久久| www.日本在线视频| 日韩理伦片在线| gogogo免费视频观看亚洲一| 国产欧美日韩丝袜精品一区| 日本天堂网在线观看| 日韩久久精品网| 国产精品探花在线观看| 国产欧美精品| 免费成人高清视频| 成人激情五月天| 精品亚洲自拍| 欧美一级免费大片| 色悠悠久久综合网| 中文不卡1区2区3区| 亚洲精品国产无套在线观| 视频三区二区一区| 日韩一区二区三区中文字幕| 国产成人在线免费| 成人免费观看网址| 这里只有精品999| 免费在线播放第一区高清av| 91国在线精品国内播放| 久久久香蕉视频| 中文不卡在线| 美女av一区二区三区| 国产精品视频看看| 99热国内精品| 日韩网站在线观看| 免费黄色国产视频| 97在线精品| 自拍偷拍亚洲一区| 99久久99久久精品免费看小说.| 亚洲日本三级| 亚洲精品网站在线播放gif| 国产伦精品一区二区三区精品| 在线观看视频一区二区三区| 欧美一区二区高清| 免费不卡av网站| 久久爱www.| 欧美一区二区三级| 国产老头和老头xxxx×| 日韩三级av高清片| 精品久久99ma| 这里只有精品在线观看视频| 欧美日韩一区二区三区四区不卡| 亚洲福利影片在线| 中文字幕日韩三级片| 九九热hot精品视频在线播放| 亚洲第一视频在线观看| 欧美精品欧美极品欧美激情| 欧美激情在线精品一区二区三区| 99精品视频中文字幕| 91影院未满十八岁禁止入内| www.97av| heyzo一本久久综合| 欧美凹凸一区二区三区视频 | 日韩精品久久久久 | 亚洲都市激情| 亚洲一级黄色av| jizzjizz日本少妇| 欧美黄色免费| 欧美一级大片在线观看| 无码人妻精品一区二区蜜桃色欲 | 久久激情电影| 久久中文字幕视频| 国产一级视频在线| 美女黄网久久| 91久久精品一区| 蜜桃久久一区二区三区| 久久人人爽人人爽| 天堂av免费看| 免费高潮视频95在线观看网站| 色乱码一区二区三区88| 中文字幕成人免费视频| 一区二区视频| 在线播放国产一区二区三区| 国产免费无码一区二区视频| 香蕉视频成人在线观看| 成人黄色av免费在线观看| 手机av免费在线观看| 中国av一区二区三区| 成人免费在线视频播放| 345成人影院| 日韩一区二区在线观看视频播放| 黑丝av在线播放| 99成人在线视频| 97国产成人精品视频| 一卡二卡三卡在线| 99r国产精品| 天天做天天爱天天高潮| 在线视频超级| 日韩免费高清av| 在线视频第一页| 亚洲青涩在线| 91亚洲一区精品| 第一福利在线| 欧美日韩国产综合新一区| 17c国产在线| 九九视频精品全部免费播放| 欧美高清视频在线播放| 伊人久久中文字幕| 99精品国产视频| 好吊色这里只有精品| 精品欧美日韩精品| 日韩成人激情视频| 久久久久久欧美精品se一二三四| 免费看黄色91| 欧美成人一区二区在线| 成人超碰在线| 日韩欧美一级在线播放| 羞羞在线观看视频| 久久久精品五月天| 久久婷婷开心| 69av成人| 精品免费日韩av| 精品无码久久久久成人漫画| 美女网站在线免费欧美精品| 日韩av不卡播放| 美女福利一区二区三区| 亚洲第一福利视频| 久热这里只有精品在线| 国产一区二区三区综合| 一区二区视频在线播放| 激情久久99| 曰本色欧美视频在线| 亚洲综合成人av| 久久久精品中文字幕麻豆发布| 日本免费黄视频| 狠狠一区二区三区| 午夜精品福利视频| 手机看片福利永久| 欧美日韩免费在线| 天堂久久久久久| 亚洲一区二区三区四区五区午夜| 国产日韩一区二区| 高清毛片在线观看| 国产视频精品一区二区三区| 久久免费激情视频| 久久九九久精品国产免费直播| 欧美日韩在线不卡视频| 精品一区欧美| 国产精品男人的天堂| 又爽又大又黄a级毛片在线视频| 欧美亚洲自拍偷拍| 成人欧美一区二区三区黑人一| 国内一区二区视频| 亚洲激情免费视频| 国产成人精品亚洲线观看| 91精品91久久久久久| 日韩av视屏| 欧美在线高清视频| 日韩欧美综合视频| 丁香桃色午夜亚洲一区二区三区| 国产精品裸体瑜伽视频| 中日韩免视频上线全都免费| 国产精品亚洲自拍| 亚洲综合影视| 精品视频久久久久久久| 国产一级片一区二区| 亚洲日本青草视频在线怡红院| 美女又黄又免费的视频| 亚洲乱码久久| 午夜视频久久久| 欧美经典影片视频网站| 97精品久久久中文字幕免费| 国产视频精选在线| 在线不卡免费欧美| 日本网站免费观看| 国产精品欧美一级免费| 无码人妻久久一区二区三区蜜桃| 国产精品腿扒开做爽爽爽挤奶网站| 日韩精品一线二线三线| 日韩在线视频一区二区三区| 欧美一区二区大胆人体摄影专业网站| 97视频在线观看网站| 日韩天堂在线观看| 中文字幕亚洲乱码熟女1区2区| 中文字幕一区免费在线观看| www.日本高清| 国内欧美视频一区二区| 久久久免费视频网站| 亚洲最新色图| 欧美一区免费视频| 亚洲日本视频在线| 国产精品jizz在线观看麻豆| 后进极品白嫩翘臀在线播放| 一区二区国产精品视频| 欧美自拍第一页| 欧美性xxxxx极品少妇| 国产成人精品a视频一区| 国产精品久久久久久久第一福利| 人妻无码中文久久久久专区| 国内精品伊人久久久久av影院| 免费高清在线观看免费| 欧美69视频| 伊人色综合影院| 美女毛片一区二区三区四区最新中文字幕亚洲| 91热福利电影| 久久av日韩| 国产成人一区二区三区小说 | 国产盗摄xxxx视频xxx69| 日本在线观看大片免费视频| 在线播放精品一区二区三区| 神马午夜电影一区二区三区在线观看| 91精品国产综合久久精品图片| jizz国产在线观看| 岛国av一区二区三区| 免费人成视频在线| 亚洲人被黑人高潮完整版| 中文字幕第24页| 久久婷婷成人综合色| 捆绑凌虐一区二区三区| 国产精品18久久久久久久久| 中文字幕亚洲乱码| 天堂精品中文字幕在线| 欧美日本视频在线观看| 亚洲日本黄色| 国产玉足脚交久久欧美| 欧美精品日本| 女人床在线观看| 68国产成人综合久久精品| 亚洲自拍偷拍二区| 手机亚洲手机国产手机日韩| 日韩欧美三级一区二区| 久久综合色占| 色综合久久88色综合天天提莫| 久操成人av| 日韩欧美一区二区三区久久婷婷| 国产精品欧美在线观看| 欧美在线激情| 精品久久网站| 亚洲一区美女| 亚洲电影影音先锋| 中文字幕在线乱| 你懂的国产精品| 丁香六月激情网| 亚洲激情欧美| 国产素人在线观看| 模特精品在线| 久久精品影视大全| 久88久久88久久久| 日本中文字幕在线不卡| 粉嫩在线一区二区三区视频| 国产伦精品一区二区三区88av| 成人美女视频在线看| 国产白嫩美女无套久久| 久久欧美一区二区| 日韩av毛片在线观看| 亚洲卡通欧美制服中文| 欧美日韩成人免费观看| 亚洲mv在线观看| 国产精品视频一区在线观看| 在线观看av一区二区| 97人妻精品一区二区三区软件| 欧美一区二区三区啪啪| 少妇av在线播放| 国产亚洲精品美女| 成人在线观看免费网站| 国精产品一区一区三区有限在线| 天堂在线中文网官网| 国产精品久久久久久久久久免费 | av片在线观看永久免费| 欧美精品久久久久| 日韩pacopacomama| 91久久精品一区| 欧美男人操女人视频| 神马欧美一区二区| 成人51免费| 亚洲伊人久久综合| 国产精品对白| 久久久久久a亚洲欧洲aⅴ| 久久av中文| 99亚洲国产精品| 国产精品一卡| 亚洲成人手机在线观看| 99久免费精品视频在线观看| 国产午夜精品福利视频| 亚洲国产精品一区二区尤物区| 欧美三级一区二区三区| 欧美年轻男男videosbes| 欧性猛交ⅹxxx乱大交| 亚洲最新中文字幕| av资源一区| 91精品久久久久久综合乱菊 | 日韩免费性生活视频播放| 你懂的视频在线| 欧美日韩国产成人高清视频| 婷婷六月国产精品久久不卡| 亚洲一区二区三区777| 国产成人一区二区三区影院| 99re6这里有精品热视频| 天堂影院一区二区| 亚洲一区二区三区四区av| 国产精品久久久久久久久免费相片 | 涩涩视频在线观看| 亚洲大胆人体视频| av免费在线免费| 国产精品视频网| 香蕉视频一区二区三区| 国产欧美日韩小视频| 久久精品国产一区二区三区免费看| 国产xxxx视频| 亚洲欧美激情一区二区| 艳妇乳肉豪妇荡乳av无码福利| 亚洲第一天堂av| 亚洲综合图区| 亚洲va久久久噜噜噜久久天堂| 啪啪亚洲精品| heyzo亚洲| 成人精品国产免费网站| 国产97免费视频| 欧美日韩1区2区| 91在线直播| 国产成人精品久久| 日韩中出av| 996这里只有精品| 国产制服丝袜一区| 国产高清视频免费在线观看| 欧美视频在线一区| 国产网站在线播放| 日韩av男人的天堂| 亚洲va久久| 浮妇高潮喷白浆视频| 成人av电影在线观看| 国产一级二级三级视频| 欧美一区二区久久| 在线看一级片| 操一操视频一区| 欧美不卡高清| 欧美xxxx日本和非洲| 一区二区视频在线| 亚洲av无码国产综合专区| 成人97在线观看视频| 成人在线视频www| 九一免费在线观看| 国产成人av影院| 国产真实夫妇交换视频| 亚洲国模精品一区| 日本黄色免费在线| 欧美国产二区| 日日夜夜精品视频天天综合网| 先锋影音av在线| 欧美精品丝袜中出| 国产三级在线播放| 91视频网页| 日韩亚洲精品在线| 日韩中文字幕电影| 欧美中文字幕一区| 激情视频在线观看| www.成人av.com| 一本色道久久| 亚洲一区二区自偷自拍| 欧美视频一二三区| www.久久ai| 黑人巨大精品欧美一区二区小视频 | 99在线热播精品免费| 精品不卡一区二区| 色久欧美在线视频观看| 日韩精品视频在线看| 欧美一级视频免费看| 久久久91精品国产一区二区精品| 亚洲一卡二卡在线观看| 欧美风情在线观看| 日韩动漫一区| 亚洲第一天堂久久| 亚洲国产精品久久久久秋霞影院| 免费在线看v| 91超碰在线免费观看| 99亚洲视频| 国产精品精品软件男同| 亚洲电影中文字幕| 国产精品久久乐| 天天夜碰日日摸日日澡性色av| 亚洲国产精品v| 丰满人妻一区二区| 国产精品极品美女在线观看免费| 亚洲午夜精品一区 二区 三区| 变态另类丨国产精品| 91精品国产入口在线| 天堂资源在线| 大桥未久一区二区|