将一个w位的数据截断为k位的数据
1.对于无符号的数据(num)的转换:
num Mod pow(2,k);
例如:
<pre name="code" class="cpp"><span style="white-space:pre"> </span>unsigned short x = 257;
unsigned char p = x; //1 原因 257%(pow(2,sizof(unsigned char)*8))
//sizof(unsigned char)*8 得到数据有多少位,这个数据其实就是 UCHAR_MAX+1;
cout << (int)p << endl;
2.对于有符号的数据(num)的转换,要比无符号的转换多了一步,也就是还要将结果转换为有符号的
U2T(num Mod pow(2, k)) //B2T 将无符号的转换为有符号的
short x = 128;
char p = x; //-128 char 能保存的最大数据类型为 -128 ~ 127 , 将其转换为有符号的数据 128-256=128;
cout << (int)p << endl;
最后
以上就是健康鱼最近收集整理的关于数据的截断的全部内容,更多相关数据内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复