精品欧美一区二区三区在线观看 _久久久久国色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爽| 成人在线免费观看视频网站| 无码aⅴ精品一区二区三区| 欧美激情极品| 一本大道久久a久久综合| 久久99影院| 天天天天天天天干| 国产精品97| 精品国精品国产| 日本精品免费在线观看| 久草在线免费福利资源| 久久99精品网久久| 九九热视频这里只有精品| 亚洲v在线观看| 成人免费看黄| 国产精品大尺度| 亚洲国产精品自拍| 精品免费一区二区三区| 成人在线观看你懂的| 免费在线超碰| 狠狠久久亚洲欧美| 国内成人精品视频| 一区二区三区伦理片| 亚洲欧洲日韩精品在线| 亚洲一二三四在线观看| 欧美日韩大片一区二区三区| 国产日韩欧美一区二区东京热| 欧美日韩岛国| 中文字幕日韩精品在线| 日本性生活一级片| 日本肉肉一区| 香蕉乱码成人久久天堂爱免费| 日本一区二区三区视频在线观看| 午夜精品久久久久久久爽| 午夜一区二区三区不卡视频| 日日噜噜噜夜夜爽亚洲精品| 在线观看国产免费视频| 亚洲一区有码| 欧美视频一二三| 国产69精品99久久久久久宅男| 日韩久久不卡| 免费av网站观看| 日本中文字幕不卡| 97免费在线视频| 91人妻一区二区三区蜜臀| 亚洲免费福利一区| 精品欧美黑人一区二区三区| 亚洲免费av一区| 国产超碰精品| 福利一区视频在线观看| www.99riav| 丝袜美腿美女被狂躁在线观看| av午夜一区麻豆| 91网站在线看| 中文字幕二区三区| 噜噜噜在线观看免费视频日韩| 欧美第一页在线| 性欧美videos| 99国产精品一区二区| 亚洲天堂开心观看| 欧美熟妇一区二区| 欧美绝顶高潮抽搐喷水合集| 精品少妇一区二区三区| 免费观看黄网站| 国产精品免费精品自在线观看| 日本乱人伦aⅴ精品| 精品免费国产二区三区| 青草视频在线观看视频| 黄av在线免费观看| 最新热久久免费视频| 神马影院一区二区三区| 蜜桃视频在线观看网站| 久久综合九色综合欧美98| 精品日韩欧美| 三级视频在线| 久久蜜桃一区二区| 蜜桃欧美视频| 免费在线毛片| 亚洲国产精华液网站w| 亚洲黄色一区二区三区| 永久免费av在线| 亚洲人妖av一区二区| 中文字幕中文字幕在线中心一区 | 亚洲另类黄色| 国产69精品久久久| 日韩精品成人在线| 亚洲欧美日韩精品一区二区| 欧美成人网在线| 青青操视频在线播放| 欧美视频福利| 91精品国产高清自在线看超| 亚洲第一网站在线观看| 免费高清不卡av| 亚洲精品免费网站| 亚洲成人黄色片| 91亚洲国产成人精品一区二区三| 99国产盗摄| 天天操天天插天天射| 久久免费看少妇高潮| 日本精品一区二区| 国产一区电影| 亚洲天堂精品在线观看| 天天综合中文字幕| a视频在线免费看| 一区二区视频在线| 免费在线a视频| 免费一级欧美在线观看视频| 日韩精品一区二区三区视频在线观看| 精品国产精品自拍| 日韩五码在线观看| 99re66热这里只有精品4| 四虎成人在线| 色婷婷综合五月| av亚洲天堂网| 国产主播性色av福利精品一区| 亚洲视频网站在线观看| 91视频综合网| 三级精品在线观看| 97久久精品午夜一区二区| 黄色av网站在线看| 亚洲另类在线视频| 免费日韩视频在线观看| 欧美片网站免费| 亚洲欧美日韩高清| 欧美丰满艳妇bbwbbw| 久久综合婷婷| 国产伦视频一区二区三区| av在线播放网站| 亚洲成人综合网站| 日本黄色福利视频| 精品久久久久久久| 性欧美在线看片a免费观看| 在线播放精品视频| 久久天堂av综合合色蜜桃网| 黄色成人在线免费观看| 四虎国产精品免费久久| 亚洲欧美国产精品久久久久久久 | 国产免费视频一区二区三区| av电影天堂一区二区在线观看| 一级日韩一区在线观看| 电影一区二区三区| 亚洲精品国产精品国自产观看浪潮| 亚洲女人久久久| 日韩高清不卡一区二区三区| 国产精品区一区二区三在线播放 | 国产成人小视频| 亚洲图片在线观看| 亚洲综合电影| 国产精品99免费看| 伊人久久久久久久久久久久久| 欧美成人综合色| 国产专区欧美精品| 亚洲一区二区精品在线观看| 免费电影日韩网站| 国产丝袜一区二区| 国产无套丰满白嫩对白| www..com久久爱| 波多野结衣av一区二区全免费观看| 亚洲色图综合| 久久久精品影院| 国产精品女同一区二区| 国产精品视频一二三区| 国产一二三在线视频| 9l视频自拍蝌蚪9l视频成人| 欧美大片免费观看| 国产精品久久影视| 欧美极品少妇xxxxⅹ高跟鞋| 九九九九免费视频| 日韩深夜福利| 国产盗摄xxxx视频xxx69| 黄色网址在线播放| 亚洲成人免费影院| 波多野结衣影院| 免费在线日韩av| 欧美日韩三区四区| av成人影院在线| 亚洲国产精品va在看黑人| 欧美高清视频一区二区三区| 国产成人av资源| 成年人视频网站免费| 一级毛片精品毛片| 欧美激情亚洲自拍| 少妇高潮一区二区三区99小说| 午夜精品久久久久影视| 美国黄色一级视频| 亚洲婷婷免费| 精品视频一区二区| 欧美中文字幕精在线不卡| 国产一区二区三区丝袜| 国产精品人人妻人人爽| 亚洲欧洲av另类| 国产欧美精品一二三| 亚洲女同中文字幕| 亚洲最大av网| av老司机免费在线| 亚洲视频国产视频| 国产精品羞羞答答在线| 一区二区三区高清| 国产免费a级片| 免费久久99精品国产自在现线| 欧美成熟毛茸茸复古| 中文字幕 亚洲一区| 亚洲小说图片视频| 国产精品成av人在线视午夜片| 免费高清在线观看| 日韩女优制服丝袜电影| 天天操夜夜操视频| 亚洲欧美在线观看| 久久一区二区电影| 久久精品久久精品| 成人免费播放器| 97人人精品| 久久综合入口| 精品一区二区三区中文字幕在线| 欧美性在线观看| 成视频免费观看在线看| 亚洲精品中文字| 国产chinasex对白videos麻豆| 福利视频一区二区| 麻豆91精品91久久久| 国产亚洲福利社区一区| 中文字幕22页| 亚洲永久字幕| 免费在线黄网站| 久久精品国产亚洲夜色av网站 | 国产一区二区三区久久精品| 亚洲av无码一区二区三区性色| 色婷婷综合五月| 欧美亚洲天堂网| 亚洲视频在线一区观看| 色无极影院亚洲| www.欧美亚洲| 亚洲免费成人在线视频| 亚洲日本激情| 永久免费网站视频在线观看| 成人无号精品一区二区三区| 激情一区二区三区| 欧美午夜在线播放| 国产一区在线播放| 欧美色999| 97国产精品视频人人做人人爱| 动漫一区在线| 久久久国产视频| 国产高清免费在线播放| 日韩av在线一区| 色综合视频在线| 欧美精品一区二| 国精产品乱码一区一区三区四区| 69成人精品免费视频| 中文字幕欧美色图| 91极品美女在线| 中文字幕69页| 色婷婷精品久久二区二区蜜臀av| 欧美成人aaaaⅴ片在线看| 夜夜精品视频一区二区| www.色小姐com| 亚洲黄色性网站| 免费人成视频在线| 亚洲亚洲人成综合网络| 欧美精品一区二区蜜桃| 一区二区三区丝袜| 麻豆亚洲av熟女国产一区二| 亚洲精品老司机| 久久免费视频99| 亚洲国产aⅴ天堂久久| 久久久久成人网站| 亚洲永久精品国产| 久一视频在线观看| 亚洲成人综合网站| 久久精品视频1| 色噜噜狠狠色综合欧洲selulu| 午夜精品一区二| 欧美在线观看你懂的| 亚洲国产精品无码久久久| 色视频欧美一区二区三区| 黄色片视频网站| 亚洲午夜电影在线| 久久久午夜影院| 色欧美片视频在线观看| 中文字幕欧美在线观看| 91精品在线麻豆| 免费观看国产精品| 亚洲摸下面视频| www.中文字幕久久久| 久久艳片www.17c.com| 黄色在线观看视频网站| 91精品国产91久久久久| 亚洲人免费短视频| 91麻豆桃色免费看| caoporn成人| 欧美精品二区三区四区免费看视频| 国产在线观看91一区二区三区| 视频一区亚洲 | 成年人网站国产| 美女91精品| 一本之道在线视频| 久久综合九色综合欧美98| 精品国产国产综合精品| 亚洲国产精品一区二区久久| 无码人妻丰满熟妇奶水区码| 欧美浪妇xxxx高跟鞋交| 亚洲奶汁xxxx哺乳期| 亚洲石原莉奈一区二区在线观看| 国产三区视频在线观看| 91国在线精品国内播放| 国模私拍国内精品国内av| www日韩av| 免费久久精品| 久久综合亚洲精品| 久久久精品五月天| 亚洲热在线视频| 欧美激情中文不卡| 国产一级aa大片毛片| 欧美色网一区二区| 天天干天天摸天天操| 亚洲视频在线播放| 男女在线视频| 国产区亚洲区欧美区| 欧美激情极品| 欧美激情亚洲天堂| 久久精品免费观看| 国产免费看av| 亚洲第一福利视频在线| 一级黄色免费看| 亚洲色图第一页| sm捆绑调教国产免费网站在线观看| 国产精品自拍偷拍视频| 岛国精品一区| 久久久久久久久久久久久国产| 天堂在线亚洲视频| 日本国产在线视频| 亚洲色大成网站www久久九九| 精品国产午夜福利| 日韩精品一区在线观看| 色网站在线看| 国产精品黄色av| 日韩欧美ww| 玩弄中年熟妇正在播放| 成人午夜精品在线| 欧美三级日本三级| 777午夜精品视频在线播放| 国产高清免费av在线| 奇米成人av国产一区二区三区| aaa国产精品视频| 99久久99久久精品| 国产在线视频一区二区三区| 免费一级黄色录像| 91国产丝袜在线播放| 国产精品国产高清国产| 国内精品400部情侣激情| 亚洲精品高潮| 免费观看亚洲视频| 国产成人啪午夜精品网站男同| 夫妻性生活毛片| 91精品国产色综合久久不卡电影 | 欧美精品卡一卡二| 成人免费视频app| 久久综合成人网| 亚洲白拍色综合图区| www在线观看黄色| 国产区一区二区三区| 激情av一区| 丝袜熟女一区二区三区| 午夜视频久久久久久| 人妻va精品va欧美va| 97人洗澡人人免费公开视频碰碰碰| 99re8这里有精品热视频免费| www.一区二区.com| 国产精品自产自拍| 久久中文字幕无码| 日韩电影网在线| 精品3atv在线视频| 亚洲欧美日韩精品综合在线观看| 免费在线观看精品| 婷婷社区五月天| 日韩你懂的在线播放| av毛片午夜不卡高**水| 欧美1o一11sex性hdhd| 日韩国产精品久久久| 精品在线观看一区| 欧美一卡二卡在线| 91av久久| 日韩电影天堂视频一区二区| 日韩国产欧美三级| 91插插插插插插| 亚洲精品suv精品一区二区| 男人最爱成人网| 中文字幕色一区二区| 成人小视频在线| 五月婷婷激情视频| 北条麻妃久久精品| 久久365资源| 国产又大又黄又粗的视频| 日韩一区在线播放| 亚洲欧美另类日韩| 国产精品福利在线观看| 中文字幕免费一区二区| 国产又粗又长又爽| 欧美日韩免费在线视频| segui88久久综合|