单目操作符介绍
~:按(二进制)位取反
有关带符号整数的二进制的三种表示:原码,反码,补码
int 32个bit
表示-1
原码
10000000000000000000000000000001 (最左边是符号位,0正1负,剩余是数值位,数值为表示真值-1的绝对值)
反码:
负数:在原码基础上数值位0改1,1改0(即按位取反),符号位不变
正数:原码即反码
-1:01111111111111111111111111111110
补码:
负数:反码末尾+1
正数:反码即补码
-1:01111111111111111111111111111111
所以正数:原码=反码=补码
表示0
原码
00000000000000000000000000000000或10000000000000000000000000000000
(+0和-0均可)
#include <stdio.h>
int main()
{
int a = 0;
printf("%d", ~a);
return 0;
}
结果:-1
由于整数在内存中存储的是补码,整数的真实值是由原码得到的
printf打印的是二进制补码转成原码的十进制数字
0:原码00000000000000000000000000000000
反码11111111111111111111111111111111
补码11111111111111111111111111111111 (不变,如果末尾+1会溢出)
++和--:
使用分为前置和后置
前置 ++a --a
后置 a++ a--
前置++:先++,后使用
int a=3;
int b=2;
b=++a;
先++(就是+1):a的值由3变4,后使用:4赋值给b
同理b=--a;(--就是-1)
#include <stdio.h>
int main()
{
int a = 3;
int b = 2;
b = --a;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
后置++:先使用,后++
int a=3;
int b=2;
b=a++;
先使用:a的值未变时先赋值给b
后++:a的值+1
同理b=a--
(类型):当类型不匹配时,可强制类型转换
int a=(int)1.21;
把1.21强制转换为整型
(& *单独讲)
关系操作符介绍:
>大于
>=大于等于
<小于
<=小于等于
!=不等于
==等于
介绍逻辑操作符
&& 逻辑与(a与b同时)
与:a与b任意一个为假则为假,a与b全真则为真
#include <stdio.h>
int main()
{
int a = 3;//a非0,见第14篇
int b = 2;//b非0
int c = a && b;//逻辑与判断:a与b均非0,则a与b为真
printf("%d\n", c);//输出1
return 0;
}
||逻辑或(a或b)
或:a与b任意一个真则真,两个都为假则假
#include <stdio.h>
int main()
{
int a = 0;//a假
int b = 0;//b假
int c = a || b;//逻辑与判断:a或b为假
printf("%d\n", c);//输出0
return 0;
}
介绍条件操作符(三目操作符)
格式:表达式1?表达式2:表达式3即为exp1?exp2:exp3
规则:exp1成立,计算exp2,得出结果;exp1不成立,计算exp3,得出结果;(其实类似if语句)
例:输入两数输出最大值
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b);
c= a > b ? a : b;
printf("%d\n", c);
return 0;
}
如果调用数组则简洁:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a[3] = { 0 };
scanf("%d %d", &a[0], &a[1]);
a[2] = a[0] > a[1] ? a[0] : a[1];
printf("%d\n", a[2]);
return 0;
}
介绍逗号表达式
定义:逗号隔开的一串表达式
exp1,exp2,exp3,……,expn
程序从左向右依次执行exp
整个exp的结果是最后一个exp的结果
int a=0;
int b=0;
int d=(a=a+1,c=c+2,c=c-a);
d为1
其他操作符:
介绍[ ]
[ ](下标引用操作符)可用于定义数组
介绍()
( )(函数调用操作符)printf();
格式:函数名(内容);
(.和->单独讲)
标签:15,int,++,初识,操作符,printf,--,原码 From: https://blog.csdn.net/2401_85828611/article/details/140099261