源码反码和补码机器数与真值机器数,即数字在计算机中的二进制表示形式。真值,第一位用+-表示数字的正负,其余为二进制数。举个栗子:-3的机器数是10000011,真值是-0000011。
原码原码,符号位加真值的绝对值。
12+3[原] = 00000011-3[原] = 10000011
8位二进制数原码的取值范围是[11111111, 01111111],即[-127, 127]
反码正数的反码是其原码。负数的反码,符号位不变,其余各位取反,即1变成0,0变成1。
12+3[反] = 00000011[原] = 00000011[反]-3[反] = 10000011[原] = 11111100[反]
8位二进制数反码的取值范围是[11111111, 01111111],即[-127, 127]
补码正数的的补码是其原码。负数的补码,是其反码+1。
12+3[补] = 00000011[原] = 00000011[反] = 00000011[补]-3[反] = 10000011[原] = 11111100[反] = 11111101[补]
反码和补码均不能直接看出其实际的数值 ...
指针与引用、数组前缀区别指针和引用是C++中的两个重要概念,它们都用于间接访问变量或对象的值,但它们在使用上有一些关键的区别:
1. 定义与语法
指针:指针是一个变量,用于存储另一个变量的内存地址。可以通过*操作符访问指针所指向的值。指针的定义方式如下:12int a = 10;int* p = &a; // p 是一个指针,指向 a 的地址
引用:引用是一个变量的别名,一旦引用被创建,它就不能再指向其他变量。引用的定义方式如下:12int a = 10;int& r = a; // r 是 a 的引用,即 r 和 a 指向相同的变量
2. 是否可以重新赋值
指针:指针可以在程序的不同地方指向不同的变量或对象,即指针的值(所指向的地址)可以改变。12int b = 20;p = &b; // 现在 p 指向 b 的地址
引用:引用在初始化后无法改变,一旦引用一个变量,就不能再引用其他变量。12int b = 20;r = b; // 这里不是改变引用,而是将 b 的值赋给 a(因为 r 是 a 的别名)
3. 空引用和空指针
指针:指针可以是空指针(null ...