C/C++实现循环左移,循环右移 |
您所在的位置:网站首页 › 利用数组实现循环左移一位 › C/C++实现循环左移,循环右移 |
目录 循环移位直接可用的函数(循环右移、循环左移) 整体代码 目录 循环移位直接可用的函数(循环右移、循环左移) 整体代码 本文的小技巧 注意的地方 本文的小技巧 实现对一个无符号数的循环左移和循环右移 循环移位直接可用的函数(循环右移、循环左移)//val表示需要移位的数 n表示移位位数 //字节数乘以8代表一共多少位 //向右循环移n位的结果:假设数据一共size位,向左移size-n位,再与原数右移n位进行或操作的结果 //val表示需要移位的数 n表示移位位数 //字节数乘以8代表一共多少位 //向右循环移n位的结果:假设数据一共size位,向左移size-n位,再与原数右移n位进行或操作的结果 uint32 bit_move(uint32 val, int n) { uint32 size = sizeof(val) * 8; n = n % size; //return (val >> (size - n) | (val n));//右移 } 整体代码如果出现头文件报错,去我主页搜关键词“bits/stdc++.h” #include using namespace std; typedef unsigned short int uint16; typedef unsigned int uint32; uint32 bit_move(uint32 val, int n) { uint32 size = sizeof(val) * 8; n = n % size; //return (val >> (size - n) | (val n)); } int main() { uint16 a; //cin >> hex >> a; scanf_s("%hd", &a);//16进制的两种输入方式 (这个地方如果是十进制输入,会栈溢出,为什么?) cout |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |