日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据类型长度、原反补码及移位

發布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据类型长度、原反补码及移位 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 數據類型

java中:

byte     ?8位   1字節

short/char  16位?  ?2字節

int?      ?32位  ? 4字節

long?     ? 64位  8字節

float      32位  4字節

double?    64位  8字節

c在x8632位中

printf("%d\n",sizeof(char)); //1字節
printf("%d\n",sizeof(short)); //2
printf("%d\n",sizeof(int)); //4
printf("%d\n",sizeof(long)); //4
printf("%d\n",sizeof(float)); //4
printf("%d\n",sizeof(double)); //8

其指針大小均為4字節,尋址32位。

?

2 原補碼

作用:一是減法變加法,二是正0與負0一致

結果:計算機中數值以補碼形式表示

具體:-128=[1000 0000]補,32位系統中表示值為[-128, 127],0其補碼僅為[0000 0000]

練習:

1)

int main()

{

??? char a=64;

??? a <<=1;

??? printf(“%d ”,a);

??? a>>=1;

??? printf(“%d ”,a);

??? return 0;

}

結果:-128 -64

說明:

有符號數據類型的移位操作:
對于char、short、int、long這些有符號的數據類型:

負數 左移:符號位始終為1,其他位左移??
正數 左移:所有位左移,即 <<,可能會變成負數??
負數 右移:取絕對值,然后右移,再取相反數 (對于x86平臺的gcc編譯器,最高位移入1,也就是仍保持負數的符號位,這種處理方式對負數仍然保持了“右移1位相當于除以2”的性質。)
正數 右移:所有位右移,即 >> ,高位補0
一個程序如果使用了有符號數的右移位操作,它就是不可移植的
因為在C語言標準中,只規定了無符號數的移位操作是采用邏輯移位(即左移、右移都是使用的邏輯左移和邏輯右移)。
而對于有符號數,其左移操作還是邏輯左移,但右移操作是采用邏輯右移還是算術右移就取決于機器了!(算術右移和邏輯右移的區別是:算術右移不右移符號位,即最高位,右移后前補0還是1取決于符號位的值;邏輯右移執行時將移動符號位,右移后前補0)。

2)

#include<iostream.h>
void main()
{
?short int n=-1;
?cout<<(unsigned short int)n<<endl;
}

結果:32位操作系統下為:65535

無符號即將符號位算為數值位考慮。

3)

unsigned char a=0xA5;
unsigned char b=~a<<4;
unsigned char c=~a>>4;
printf("b=%d\n",b); //b=160
printf("c=%d\n",c); //c=245

int i=4;
printf("i=4 left shift%d\n",~i<<2); //i=4 left shift -20
printf("i=4 right shift%d\n",~i>>2); //i=4 right shift -2

int j=-6;
printf("j=-6 left shift%d\n",~j<<2); //j=-6 left shift 20
printf("j=-6 right shift%d\n",~j>>2); //j=-6 right shift 1

3 進制轉換

10進制轉為R進制

  整數部分通過連續/R,取在[0, R-1]間的余倒著連起。

  小數部分通過連續*R,取結果中的整數順著連起。

  將兩部分相加,即可。

轉載于:https://www.cnblogs.com/ele7en/archive/2012/08/11/2633398.html

總結

以上是生活随笔為你收集整理的数据类型长度、原反补码及移位的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。