关于字符数组异或换位后数据类型的注意
来源:互联网 发布:联想手机截图软件 编辑:程序博客网 时间:2024/06/12 00:48
移位运算符适用数据类型有byte,short,插入,int,long。对低于int型的操作数,将先自动转换为int型然后再移位。对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的数据。例:a>>33和a>>1的效果是一样的。a>>32还是a原来的数字。对于long型的整数移位时,先对移位位数对64取模。
我遇到过的问题:
/*
将字符串变成数组
将数组反转
将数组变成字符串
*/
public static String Noname1(String s)
{
//字符串变数组
char[] chs=s.toCharArray();
//反转数组
reverse(chs);
//数组变字符串
return new String(chs);
}
private static void reverse(char[]arr)
{
for(int start=0,end=arr.length-1;start<end;start++,end--)
{
swap(arr,start,end);
}
}
private static void swap(char[]arr,int x,int y)
{
arr[x]=arr[x]^arr[y];
arr[y]=(arr[x]^arr[y];
arr[x]=arr[x]^arr[y];
}
}
本例本来最后的代码是想实现异或换位,但是编译出错,提示损失精度,需要:char,找到:int。 这里就是在异或运算中,char型自动提升为int型参与运算,最后结果成为了int型,然后结果在赋值给char型就出现损失精度的错误,需要通过强制转换才能顺利执行。改后的代码部分如下:
arr[x]=(char)(arr[x]^arr[y]);
arr[y]=(char)(arr[x]^arr[y]);
arr[x]=(char)(arr[x]^arr[y]);
- 关于字符数组异或换位后数据类型的注意
- 关于内存及字符数组,字符串的一些注意点
- 关于数据类型的注意点
- 对字符或字符数组的输入输出
- 关于MySQL数据类型的一些注意问题
- 字符数组初始化需要注意的问题
- 使用异或实现两个数的换位,不需要中间变量,提高效率
- 定义字符数组注意
- 字符数组、字符指针和sizeof值得注意的地方。。
- 关于字符数组的初始化
- 关于字符数组的初始化
- 关于字符数组的初始化
- 关于字符数组的初始化
- 关于字符数组的关系
- 求字符串,字符,或数组的大小
- 关于MFC中数据收发后出现的指针为空或数据数组崩溃毁坏
- 两个数换位运算(不用第三变量)--异或
- 数组换位问题
- windows与linux下sigar的系统依赖文件配置
- WIN2003下IIS(WEB服务器)的负载均衡
- POJ 2653 Pick-up sticks
- Qt的Tab选项卡
- windows下发布Qt程序
- 关于字符数组异或换位后数据类型的注意
- web在resin中发布
- 转:TCP三次握手和四次挥手详细图解
- 两线段相交的判断(跨立实验法)
- Fragment 生命周期
- 触发器
- 集合框架
- Ubuntu下使用Java调用IKAnalyzer中文分词程序失效的解决方法
- hdu1106( 排序)