C语言:
取模运算和除法运算结果的正负是由左操作数的正负决定的。
int取值范围为什么是-2^31 - 2^31-1? -1是因为这其中包括了0(两位最大表示3),0占去了一个。而负数不用-1是因为1000 0000 0000 0000 0000 0000 0000 0000(2)“-0”这个数被用去表达-2^31
void main(void)
{
int a=-2147483648;
int b=-a;
printf("a=%d, b=%d\n",a,b);
}
//a=-2147483648, b=-2147483648
当2^32-1刚好在计算机中是0111 1111 1111 1111 1111 1111 1111 1111
再比这个数大的话,向最高位进位,也就负数为1了
通常编译器对于integer overflow采取的处理方法就是回绕
一。接口的使用(implements关键字)
1.接口使用interface来定义
2.Java中,接口和类是并列的两个结构
3.如何定义接口:定义接口中的成员
3.1JDK7以前,只能定义全局常量和抽象方法
>全局常量:public static final的
>抽象方法:public abstract的
在接口中,可以省略public staitc void main/public stract(因为全是一种类型所以省略也是默认有)
3.2JDK8:除了义全局常量和抽象方法之外,还可以定义静态方法,默认方法(暂时不说)
4.接口中不能定义构造器 所以不可以实例化 但有“实现类的对象”
5.Java开发中,接口通过让类去实现的方式来使用
如果实现类覆盖了接口中的所有抽象方法,则此类可以实例化。如果没有,则此类实现类仍为一个抽象类。
6.接口的使用
6.1.接口使用上也满足多态性
6.2.接口,实际上就是定义了一种规范(驱动就是实现类的集合)
6.3.比如面向接口编程
PS:
1.定义Java类的语法格式:先写extends,后写implements
2.一个类可以实现多个接口,(,隔开)接口也可以继承其他接口(用extends)
3.接口的主要作用就是被实现类实现
4.接口与实现类之间存在多态性(比如方法形参声明为一个接口)
5.本质上,接口是一种特殊的抽象类