IOS笔记-计算机中的进制 反码补码 和存储细节
1、計算機中的進制
?
????計算機能夠識別的只有二進制 0、1
?
????進制就是一種計量的單位
?
2、常見的進制:
?
?二進制:逢二進一??用0、1來表示,定義一個二進制的數:0b 或者 0B ?,0B1010(2)=10(10)
?
?八進制:逢八進一??用0-7之間的數字表示,定義一個八進制的數:0 開頭
?
?
10進制:逢10進一??用0-9之間的數字表示,定義一個十進制的數(默認)
?
16進制:逢16進一??用0-9表示16進制中的0-9,用A-F表示16進制中的10-15
?
????????定義一個16進制的數,用0x或者0X開頭
?
3、進制的轉換問題
?
10--->2 :?除2取余法,取余數逆序??(把一個10進制的數每次除以2,得到余數)
2---->10:?用二進制的每一位乘以2的(x)次方,
???
???????????如果是正整數:x從右至左,從0開始依次增1
???????????如果是實數:? x從小數部分開始,從左至右,x依次增加1
?
?????????? 010101110.10101
?
?
10-->8:除8取余,取余數的逆序
2--->8:取出三位(二級制)合成 1位(8進制)?
??????? 01 101 101= 155
8--->2:取出1(8進制)拆成3位(二進制)
?
?
2--->16:取出四位(二進制)合成 1位(16進制)
16-->2 :一拆四,取出1位(16進制)拆成 4位(二進制)
?
?
8--->16:? 8---->2---->16:先是1拆3,然后4合一
16-->8 :? 16--->2---->8 :先是1拆4,然后3合一
?
?
4、原碼、反碼、補碼
?
????為什么要引入反碼和補碼?
?
????存儲一個負數,主要還是用來優化計算機的減法運算
?
??
????原碼:一個正數的二進制表示,原碼
?????????整數的原碼、反碼、補碼都是一樣的
?
????反碼:符號位不變,其他位按位(逐位)取反的結果
?
????補碼:反碼+1
?
???????? 00000000 00001010
?????
????取反:11111111 11110101
????+1 ? 11111111 11110110 ??-5
?
?
5、位運算
?
????&???|??~??>>??<<
?
????&?按位與???????口訣:同1為1
????|?按位或???????口訣:有1為1
????~?按位取反?????口訣:1變0,0變1
?
????>>右移位???????把一個數的二進制位逐位向右移動 a>>1 ?把a向右移動1位
??????????????????相當于/2
??????????????????注意:向右移位,移出的那位刪除,左側補符號位
?
????<<左移位???????把一個數的二進制位逐位向左移動 a<<1 ?把a向左移動1位
?相當于*2
??????????????????注意:
??????????????????向左移位,有可能會改變一個數的正負性
??????????????????向左移位,移出的位被刪除,右側補0
?
??????????????????
??????????????????任何數和1進行&操作,相當于取這個數的二進制的最后一位。
?
6、變量在內存中的存儲細節
?
??? int? 4個字節?%d %i
??? float 4個字節?%f
??? double 8個字節%f
??? long? 8個字節(64),32位下4個字節
??? long long 8個字節,
?
7、變量類型的修飾符
??
??? short int? 2個字節??%hd ?
?
??? 10000000 00000000 ????-2(15)(-32768)
?-1 00000000 00000001
?------------------------
??? 01111111 11111111 ???? 2(15)-1(32767)
?
?
??? long ????? 8個字節??%ld -2(63)?~ 2(63)-1
??? long long? 8個字節??%lld
??? signed int 4個字節??%d
??? unsigned int 4個字節?%u
?
8、字符型
?
????字符型數據在內存中如何存儲的?
????字符型單字節(8位)
?
????字符型存儲過程?---->整數--->2進制---->內存(字符對應的整數可以查詢ascii碼表)
????取出字符的過程內存---->二進制--->整數---->查出對應的字符
?
??? char ch;
??? ch='a';????-->97
???
????%d ? 97
????%c ? a
?
????字符型和整形可以互相轉換
轉載于:https://www.cnblogs.com/houzhitong/p/4499851.html
總結
以上是生活随笔為你收集整理的IOS笔记-计算机中的进制 反码补码 和存储细节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c# 自定义控件之小小进度条
- 下一篇: 【floyd存字典序路径】【HDU138