16进制转double dotnet_终于把计算机进制弄明白了!
And there's one thing that I need from you
我只需要你為我做一-件事
Can you come through, through
待在我的身邊就好
Through, yeah
你可以撫慰一切不滿
And there's one thing that I need from you
你可以過來(lái)
Can you come through?
待在我的身邊嗎
-comethru·Jeremy Zucker
進(jìn)制進(jìn)制的分類
二進(jìn)制:0,1 ? 滿2進(jìn)1
八進(jìn)制:0~7 滿8進(jìn)1,以0開頭
十進(jìn)制:0~9 滿10進(jìn)1
十六進(jìn)制:0~9及A~F 滿16進(jìn)1,以0x或0X開頭表示,A~F不區(qū)分大小寫
進(jìn)制的轉(zhuǎn)換
--- 第一組(其他進(jìn)制轉(zhuǎn)十進(jìn)制)------------
規(guī)則:從低位開始,將每個(gè)位上的數(shù)提取出來(lái),乘以2/8/16的(位數(shù)-1)次方,然后求和
1)二進(jìn)制轉(zhuǎn)十進(jìn)制
規(guī)則:從低位開始,將每個(gè)位上的數(shù)提取出來(lái),乘以2的(位數(shù)-1)次方,然后求和
1011 = 1 * 1 + 1 * 2 + 0 * 2 * 2 + 1 * 2 * 2 * 2 = 1 + 2 + 0 + 8 = 11
2)八進(jìn)制轉(zhuǎn)十進(jìn)制
規(guī)則:從低位開始,將每個(gè)位上的數(shù)提取出來(lái),乘以8的(位數(shù)-1)次方,然后求和
123 = 3 * 1 + 2 * 8 + 1 * 8 * 8 = 3 + 16 + 64 = 83
3)十進(jìn)制轉(zhuǎn)十六進(jìn)制
規(guī)則:從低位開始,將每個(gè)位上的數(shù)提取出來(lái),乘以16的(位數(shù)-1)次方,然后求和
0x34A = 10 * 1 + 4 * 16 + 3 * 16 * 16 = 10 + 64 + 768 = 842
--- 第二組(十進(jìn)制轉(zhuǎn)其他進(jìn)制)------------
規(guī)則:將該數(shù)不斷除以2/8/16,直到商為0,然后將每步得到的余數(shù)倒過來(lái)
1)十進(jìn)制轉(zhuǎn)二進(jìn)制
規(guī)則:將該數(shù)不斷除以2,直到商為0,然后將每步得到的余數(shù)倒過來(lái)
56 = (((((56 / 2)/2)/2))/2)/2 = 111000
2)十進(jìn)制轉(zhuǎn)八進(jìn)制
規(guī)則:將該數(shù)不斷除以8,直到商為0,然后將每步得到的余數(shù)倒過來(lái)
156 = ((156 / 8)/8)= 0234
3)十進(jìn)制轉(zhuǎn)十六進(jìn)制
規(guī)則:將該數(shù)不斷除以16,直到商為0,然后將每步得到的余數(shù)倒過來(lái)
356 = ((356 / 8)/8)= 164
--- 第三組(二進(jìn)制轉(zhuǎn)其他進(jìn)制)------------
規(guī)則:將二進(jìn)制數(shù)每 3/4 位一組(從低位開始組合),轉(zhuǎn)成對(duì)應(yīng)的八進(jìn)制數(shù)即可
1)二進(jìn)制轉(zhuǎn)八進(jìn)制
規(guī)則:將二進(jìn)制數(shù)每三位一組(從低位開始組合),轉(zhuǎn)成對(duì)應(yīng)的八進(jìn)制數(shù)即可
11010101 = 11(3)010(2)101(5)= 325
2)二進(jìn)制轉(zhuǎn)十六進(jìn)制
規(guī)則:將二進(jìn)制數(shù)每四位一組(從低位開始組合),轉(zhuǎn)成對(duì)應(yīng)的八進(jìn)制數(shù)即可
11010101 = 1101(D)0101(5)= 0xD5
--- 第四組(其他進(jìn)制轉(zhuǎn)二進(jìn)制)------------
規(guī)則:將8/16進(jìn)制數(shù)每1位,轉(zhuǎn)成對(duì)應(yīng)的一個(gè)3/4位的二進(jìn)制數(shù)即可
八進(jìn)制轉(zhuǎn)二進(jìn)制
規(guī)則:將八進(jìn)制數(shù)每1位,轉(zhuǎn)成對(duì)應(yīng)的一個(gè)3位的二進(jìn)制數(shù)即可
237 = 2(010)3(011)7(111)= 010011111
十六進(jìn)制轉(zhuǎn)二進(jìn)制
規(guī)則:將十六進(jìn)制數(shù)每1位,轉(zhuǎn)成對(duì)應(yīng)的一個(gè)4位的二進(jìn)制數(shù)即可
0x237A = 2(0010)3(0011)7(0111)A(1010)= 0010001101111010
原碼、反碼、補(bǔ)碼
對(duì)于有符號(hào)的而言
1).二進(jìn)制的最高位是符號(hào)位,0正數(shù),1負(fù)數(shù)
????1 => [0000 0001], -1 => [1000 0001]
2).正數(shù)的原碼/反碼/補(bǔ)碼都一樣
????1 => 原碼[0000 0001] 反碼[0000 0001] 補(bǔ)碼[0000 0001]
3).負(fù)數(shù)的反碼 = 它的符號(hào)位不變,其他位取反
4).負(fù)數(shù)的補(bǔ)碼 = 它的反碼 + 1
????-1 => 原碼[1000 0001] 反碼[1111 1110] 補(bǔ)碼[1111 1111]
5).0的反碼,補(bǔ)碼都是0
6).在計(jì)算機(jī)運(yùn)算的時(shí)候,都是以補(bǔ)碼的方式運(yùn)算的
????1 + 1 ; 1 - 1 = 1 + (-1)
位運(yùn)算& | << >>
& : 兩位全為1,結(jié)果為1,否則為0
| : 兩位有一位為1(包含兩位1),結(jié)果為1,否則為0
^ : 兩位一位為1(只有一位1),結(jié)果為1,否則為0
// 2的補(bǔ)碼 0000 0010// 3的補(bǔ)碼 0000 0011// 2&3 ? ?0000 0010 => 2fmt.Println(2&3)// 2|3 ? ?0000 0011 => 3fmt.Println(2|3)// 2^3 ? ?0000 0001 => 1fmt.Println(2^3)// -2的原碼 1000 0010
// -2的反碼 1111 1101
// -2的補(bǔ)碼 1111 1110
// 2的補(bǔ)碼 ?0000 0010
// 結(jié)果的補(bǔ)碼 ? ?1111 1100
// 結(jié)果的反碼 ? ?1111 1011
// 結(jié)果的原碼 ? ?1000 0100 => -4fmt.Println(-2^2)
a := 1 >> 2b := -1 >> 2c := 1 << 2d := -1 << 2// 0000 0001 >> 0000 0000 => 0fmt.Println(a) // 0
// -1的原碼 1000 0001
// -1的反碼 1111 1110
// -1的補(bǔ)碼 1111 1111
// >>2 的補(bǔ)碼 ? ?1111 1111
// >>2 的反碼 ? ?1111 1110
// >>2 的原碼 ? ?1000 0001 => -1fmt.Println(b) // -1
// 0000 0001 >> 0000 0100 => 4fmt.Println(c) // 4
// -1的原碼 1000 0001
// -1的反碼 1111 1110
// -1的補(bǔ)碼 1111 1111
// <<2 的補(bǔ)碼 ? ?1111 1100
// <<2 的反碼 ? ?1111 1011
// <<2 的原碼 ? ?1000 0100 => -4fmt.Println(d) // -4
總結(jié)
以上是生活随笔為你收集整理的16进制转double dotnet_终于把计算机进制弄明白了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: http协议 301和302的原理及实现
- 下一篇: 二级c语言评分标准一样吗,计算机二级评分