#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
//&参加运算的两个数制,按二进制进行 与运算。如果两个相应的二进位数为1,刚该位的结果为 1 否则为 0
//0&0=0; 0&1=0; 1&0=0; 1&1 = 1;
//0|0=0; 0|1=1; 1|0=1; 1|1=1;
//0^0=0; 0^1=1; 1^0=1; 1^1=0;
Byte a = 3&8;
Byte b = 3|8;
Byte c=3^8;
Byte d = ~3;
signed char i = ~3;
//整数的原码(0000 0011)=反码(0000 0011)=补码(0000 0011)
//负数以补码的形式存在
//负数的绝对值原码=(|0000 0011|)=反码(1111 1100)=补码(反码+1(1111 1101))
//如果补码为符号位为0表示一个整数,为1 表示一个负数
//补码转原码 补码(1111 1101)=反码(符号位不变 1000 0010) =原码(符号位不变+1 1000 0011)
//值=-4
//计算 3原码 0000 0011
//取反(不等于反码,取反后还是原码) 1111 1100 =252
//signed char 有符号 范围在=128-127 252>127 所以该值有符号
//1111 1100 符号位不变 取反 1000 0011
//反码加1 符号位不变 1000 0100=-4
signed char j= (signed char)(3<<7);
int fh = j;
NSLog(@"%i",fh);
//计算 0000 00011 向左位移7位 1000 0000 signed char 范围-128-127 符号位为1 得-128
signed char k= (signed char)(3>>1);
int fk = k;
NSLog(@"%i",fk);
//计算 0000 00011 向右位移1位 0000 0001 signed char 范围-128-127 符号位为0 得1
//以此类推
}
return 0;
//二进制和十进制互转
https://jingyan.baidu.com/article/597a0643614568312b5243c0.html
}