tft每日頭條

 > 生活

 > 位移算法

位移算法

生活 更新时间:2024-07-07 15:29:00

位移算法?位移運算,首先要理解進制轉換,以十進制,二進制轉換為例,今天小編就來聊一聊關于位移算法?接下來我們就一起去研究一下吧!

位移算法(位移運算符)1

位移算法

位移運算,首先要理解進制轉換,以十進制,二進制轉換為例

正整數和負整數二進制轉換也不相同

正整數:

正整數轉成二進制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。

2:其二進制就是00000010

正整數二進制轉成十進制:0*2^0 1*2^1=2

負整數:

負數二進制表示

負數是通過補碼作為負數二進制表示

而補碼等于原碼在保持符号位不變的情況下其餘位0和1互換得到反碼,反碼 1即為補碼

例如 -5

其原碼表示為:10000101(最左邊1即為符号位,負數符号位是1)

反碼:11111010

補碼:11110101

-5的二進制表示即為:11110101

負數二進制轉十進制:

就是将負數的二進制轉為原碼,最後得出十進制

還是以-5為例:

-5的補碼是:11110101

則它的反碼是:11111010

原碼就是:10000101

所以其十進制表示為:-(1*2^0 0*2^1 1*2^2)=-5

位移運算符在程序開發中經常出現,例如2<<3,代表2左移3位,便捷計算方式

2*2^3=16

具體運算過程

首先将2轉換為2進制即為:00000010

左移三位就是把該數字高位(左側)的三個零移出,其他的數字都朝左平移3位,最後在低位(右側)的三個空位補零。

二進數表示就是00010000,轉換為十進制:1*2^4=16

負數位移運算

例如-5<<2,便捷計算方式:

-5*2^2=-20

具體運算方式

-5的二進制(補碼):11110101

左移兩位:就是把數字高位(左側)兩位移出,其他的數字都朝左移兩位,最後在低位(右側)的兩個空位補1。

然後轉為原碼:10010100;轉為十進制:-20.

右移運算

正數右移運算:

20>>2

便捷運算:20/2^2=5

具體運算過程

20的二進制:00010100

右移兩位:就是把數字低位(右側)兩位移出,其他的數字都朝右移兩位,最後在高位(右側)的兩個空位補0.

00000101=1*2^0 1*2^2=5

負數右移運算:

-20>>2

便捷運算:-20/(1*2^2)=-5

具體運算過程

負數的右移運算比正數相對複雜

首先得到-20的二進制(補碼)

原碼:10010100

反碼:11101011

補碼:11010111

右移兩位:就是把數字低位(右側)兩位移出,其他的數字都朝右移兩位,最後在高位(右側)的兩個空位補1.

得出:補碼:11110101,然後将補碼轉為原碼

補碼:11110101

反碼:11111010

原碼:10000101

得出十進制:-(1*2^0 1*2^2)=-5

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved