为什么clion使用相对路径图片就不显示,使用绝对路径就显示?
这是绝对路径
这是相对路径
为什么,因为图片文件位置放的不对吗
为什么clion使用相对路径图片就不显示,使用绝对路径就显示?
这是绝对路径
这是相对路径
【相关推荐】
原码
原码是由符号位+真值的绝对值组成,即第一位为符号位(0或者1分别代表正值、负值),其余为值
反码
正数的反码为其本身,负数的反码为原码的符号位不变,其余取反
补码
正数的补码为其本身,负数的补码为反码+1
对于正数来说,其原码反码补码都是一样的
反码和补码的作用在于让计算机不需要区分符号位(将符号位参加运算),也不需要计算减法,仅仅计算加法。
演进过程举例:
- 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2. 结果是错误的,所以计算机引进了反码
- 1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0, 结果是正确的,但是还有问题:
- 0有两种表示: +0和-0,所以出现了补码:
- 1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原 : 结果是0(+0), 而且-0可以表示-128,如下:
- (-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]补 + [1000 0001]补 = [1000 0000]补, 而且-128没有源码和反码,因为他是用-0来表示的-128
- 因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [−231,231−1]
因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.
总结:
- 使用反码,解决了符号位的问题,但是有-0和+0的问题
- 是引用补码,解决正负0的问题,并且可以用-0表示-128, 相当于多了一个数字的范围
- 总之,正数的补码和原码是相同的,负数的补码才需要我们转换
- 计算机默认存储的是补码方式.
char c = -1;
printf("c=%d\n", c);
char c2 = 255; //char是8bit,1字节
//这里虽然是255,但是其实是-1,因为是补码,c2的二进制是11111111,对应的原码是10000001即-1.
printf("c2=%d\n", c2);
结果:
c=-1
c2=-1