1.補碼,計算機二進制在記憶體中如何顯示的就是補碼
2.檢視每種資料類型的範圍
如果想輸出無符号整型,使用的是uint_max可以得到長度。
3.原碼,反碼,補碼
負數:(以-1為例)
原碼: 1000 0000 0000 0000
00000000 0000 0001 -1的原碼
反碼: 1111 1111 1111 1111
11111111 1111 1110 -1的反碼(符号位不變,其它位取反)
補碼: 1111 1111 1111 1111
11111111 1111 1111 -1的補碼(符号位不變,反碼基礎上加1)
4、操作符
參數1
參數2
求&的結果
1
比如:(7&3)=3
與可以清除某些位數
|:或操作
求|的結果
^異或
求^的結果
案例:
~取反操作符
1
取反得
unsigned char ch1 = 1;
//0000 0001 1
unsigned char ch2= ~ch1;
//1111 1110 254
<<
左移,值變成原來的2倍
>>
右移
值變成原來的1/2
左移位效果
在上面的基礎上進行右移位的效果如下:
5、列印二進制檔案
#define _crt_secure_no_warnings
#include<stdio.h>
#include<stdlib.h>
void main1()
{
intnum;
scanf("%d",&num);
printf("num=%d,&num=%p\n",num,&num);
int data = 1 << 31;//建構一個相與的資料
for(int i = 1; i <= 32; i++)
inttemp = num&data;//求出首位相與
if(temp == 0)
putchar('0');
}
else
putchar('1');
num<<= 1;
if(i % 4 == 0)
printf("");
system("pause");
void main()
printf("num=%d,&num=%p\n",num, &num);
intdata = 1 << 31;//建構一個相與的資料
if(num < 0)
num= ~num + 1;//求原碼
num= num | data;//設定符号位