0X01 |
您所在的位置:网站首页 › 二进制0x1是多少 › 0X01 |
一: “与”运算 : &; “或”运算 : |; “非”运算 : ~; “异或”运算:^; 二:补码 (1)32位无符号整数:unsigned int ; 0 ~ 4294967295; (2)32位有符号整数:int; -2147483648 ~ 2147483647;在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。 具体请见: https://blog.csdn.net/zl10086111/article/details/80907428?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164983986716780269813706%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164983986716780269813706&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-80907428.142^v7^control,157^v4^control&utm_term=%E8%A1%A5%E7%A0%81&spm=1018.2226.3001.4187s 三:移位运算; (1)左移: 把左移运算符()左边的运算数的各二进制位全部右移若干位,移动的位数由右移运算符右边的数指定; 对于有符号数,在右移时,符号位将随同移动: 当有符号数为正数时,最高位补0 当有符号数为负数时,最高位也就是符号位为1,最高位补0或者补1,取决于编译系统。(很多系统规定为补1)。 通俗理解: 左移将原数乘以2右移将原数除以2举例: a. 原数: 100 整型是4字节32位,将100以整型的二进制表示 二进制: 00000000 00000000 00000000 01100100 100 >> 2 二进制: 00000000 00000000 00000000 00011001 | 00 解释: | 后面被剔除,前面缺少的两个补0 结果: 25 右移两位相当于除以2,再除以2,结果为25 100 1运算可以舍去最低位。 AC代码: #include using namespace std; typedef long long LL; int main() { long long a, b, p; cin >> a >> b >> p; long long ans = 1 % p; for(; b ; b >>= 1) { if(b & 1) ans = ans * a % p; a = a * a % p; } cout > a[i][j]; } } memset(f, 0x3f, sizeof f); f[1][0] = 0; //终点是j for(int i = 1; i < 1 > j & 1) { for(int k = 0; k < n; k ++ )/*上一种情况,又因为 j 只能恰好经过一次,所以一定是刚刚经过的,所以在上一时刻“被经过点的状态”对应的二进制的第 j 为应该赋值为 0 ,即 i ^ (1 k & 1) { f[i][j] = min(f[i][j], f[i ^ 1 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |