java 位运算 以及10进制数据转换不同进制数据

来源:互联网 发布:java迭代器遍历集合 编辑:程序博客网 时间:2024/06/06 05:21

byte类型占2个字节,8位2进制的数据  如  0000 0110表示十进制数字6

int类型占4个字节,32位2进制的数据    0000 0000 0000 0000 0000 0000    0000 0110表示十进制数字6

long类型占8个字节,64位2进制的数据

float类型占8个字节,64位2进制的数据

double类型占8个字节,64位2进制的数据

1. 左移    2<<3    

    快算计算法:  2乘以2的3次方

    把2 转换成2进制数据:110,直接在110最右边加3个0,既变成11000  ,换成10进制则为16

    特殊:

   若移动的位数超过 2进制的位数,则 去掉左边多余的位数 

  例如:long 类型   16808060402<<35  ,16808060402的2进制数据为 1111, 1010 ,0111, 0101 ,1010 ,1001 ,0111 ,1100, 10  

  它本身有34位 、再向左移动35既是在右边加35位个0,此时位数就变成69位,多出5位,最左边的5位取出,则结果为  0100 ,1110 ,1011, 0101 ,0010 ,1111 ,1001 ,0,35个0

  


2.右移     16<<2

    快算计算法:  16除以2的2次方   

    把216转换成2进制数据:10000,直接减去11000最右边的3位,既变成100  ,换成10进制则为4


10进制转换成不同进制的方法


 

/** * 10进制数据转换为其他进制的数据 *  * @param data *            要转换的数据 * @param type *            要转换的进制(例如:2,8) * @return 1111 1010 0111 0101 1010 1001 0111 1100 10 */public static String convert(Long data, Integer type) {return count(data, type).reverse().toString();}

private static StringBuffer count(Long data, Integer type) {Long num = data / type;Long mod = data % type;buffer.append(mod);if (num != 0 && num != 1) {count(num, type);} else {buffer.append(num);}return buffer;}


   





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新版医保卡丢了怎么办 武汉社保卡掉了怎么办 职工社保卡丢了怎么办 杭州社保卡丢了怎么办 农村医疗卡丢了怎么办 陕西省医保卡丢了怎么办 小孩社保卡掉了怎么办 社区医保本丢了怎么办 宝宝医保卡掉了怎么办 同煤医疗卡丢了怎么办 杭州医保卡丢了怎么办 新的医保卡丢了怎么办 二代医保卡丢了怎么办 老医保卡丢了怎么办 上海医保卡余额用完了怎么办 身份证丢了医疗报销怎么办 取公积金身份证丢了怎么办 身份证丢了怎么办就诊卡 人在外地怎么办农村社保卡 武汉医保卡丢了怎么办 济宁社保卡丢了怎么办 农村医疗本丢了怎么办 常熟医保卡丢了怎么办 农民社保卡丢了怎么办 常熟社保卡坏了怎么办 社保卡丢失补办期看病怎么办 社保卡补办期间看病怎么办 医保卡冻结了出院结算怎么办 住院医保卡钱不够怎么办 住院押金条丢了怎么办 急用新社保卡要怎么办 看病没带社保卡怎么办 医保卡掉了住院怎么办 厦门医保卡丢了怎么办 成都医保卡丢了怎么办 长春医保卡丢了怎么办 县城医保卡丢了怎么办 医保卡丢了怎么办南宁 西安职工医保丢了怎么办 重庆医保卡丢了怎么办 外地医保卡丢了怎么办