Ⅰ java中的<<是什么意思
<<:是逻辑左移,右边补0,符号位和其他位一样要移动。
数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
计算:3 << 2
3 << 2,则是将数字3左移2位
1、首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011
2、然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。
3、则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。
(1)java0000扩展阅读
Java语言支持的赋值运算符
=:简单的赋值运算符,将右操作数的值赋给左侧操作数。如C = A + B将把A + B得到的值赋给C。
+ =:加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数。如C + = A等价于C = C + A。
- =:减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数。如C - = A等价于C = C -
A。
* =:乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数。如 C * = A等价于C = C * A。
/ =:除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数。如 C / = A等价于C = C / A。
(%)=:取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数。如 C%= A等价于C = C%A。
<< =:左移位赋值运算符。如C << = 2等价于C = C << 2。
>> = :右移位赋值运算符。如C >> = 2等价于C = C >> 2。
&= :按位与赋值运算符。如 C&= 2等价于C = C&2。
^ =:按位异或赋值操作符。如C ^ = 2等价于C = C ^ 2。
| =:按位或赋值操作符。如C | = 2等价于C = C | 2。
Ⅱ java一个数字的位数不够怎么在前面加0
具体操作如下:
String str1="1";
DecimalFormat df=new DecimalFormat("0000");
String str2=df.format(Integer.parseInt(str1));
System.out.println(str2);
Ⅲ java的运算中~10为什么是-11
说明:1.~运算为按位取反
2.计算机中的数据都是2进制补码
3.一个10进制数转化为2进制数,即放入计算机时,要根据10进制正负(+、-)不同的补码规则转化
4.同理,计算机中的2进制数转化为你习惯的10进制数时,也会根据2进制正负(0、1)不同的补码规则转化
5.要学会利用计算机的思维理解数据 以及他们的运算
6.现在内存或得了一个数0000 1010,你让cpu计算它的~值,他直接就取反,得到一个数1111 0101,结果他一想,你可能听不懂他说的啥,还是好心的给你转换为你能理解的10进制吧。但是cpu一看这是一个负数,于是根据人类的要求,需要先把他转换为原码的形式再转10进制,于是乎(1111 0101)-1=1111 0100,除符号位求反变为1000 1011,转为10进制就是-11啦
Ⅳ java中如何将字符串转16位输出、、。例如“aa”,"0000 0000 0000 0000"按这样的方式输出
先要以正确的编码把字符串转为字节串,在把字节串转为16进制编码
public class Test {
public static void main(String[] args) {
try{
System.out.println(toHex("hello world","GBK"));
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
}
static public String toHex(String text,String enc) throws UnsupportedEncodingException{
byte B[]=text.getBytes(enc);
StringBuilder buf=new StringBuilder();
for(byte b:B){
buf.append(Integer.toHexString(b&0xff));
}
return buf.toString();
}
}
==========
68656c6c6f20776f726c64
Ⅳ Java中怎么限制输入的数只能是四位,从0000到9999
用正则表达式!!例如:
Sting str =textfield.getText();
if (str.matchs(\\d{4}))/表示符合条件
……
Ⅵ Java高效打印出0000-9999之间所有的值存到arraylist集合中
推荐用Java8 的新特性Stream来处理
List<String>lsit=Stream.iterate(0,item->item+1)
.limit(10000)
.map(item->
{
Stringstr=item.toString();
while(str.length()<4)str="0"+str;
returnstr;
})
.collect(Collectors.toList());
代码简洁,易懂
Stream.iterate:制造一个stream,0,1,2,3,....无穷
limit:截取前10000个(不包括10000)
map:把里面的数字进行转化,转化为String,若不足4位的前面补0
collect:转化为数组
Ⅶ java 位运算
我的分析是建立在A、B、C三步彼此独立的情况下:
int b1 = 1; b1在计算机的二进制为0000 0000 0000 0000 0000 0000 0000 0001
int b2 = -1;b2在计算机的二进制为 1111 1111 1111 1111 1111 1111 1111 1111
>> 和 << 是算术位移符,>>>是逻辑位移符
算术位移符和逻辑位移符的区别是:右移时,算术位移左边补符号位,逻辑位移左边补0;左移时,二者没有区别,都是在右边补0。
b1 <<= 31 ==> 0000 0000 0000 0000 0000 0000 0000 0001 << 31 ==> 1000 0000 0000 0000 0000 0000 0000 0000 ==> -2147483648
b1 >>= 31 ==> 0000 0000 0000 0000 0000 0000 0000 0001 >> 31 ==> 0000 0000 0000 0000 0000 0000 0000 0000 ==> 0
b2 <<= 31 ==> 1111 1111 1111 1111 1111 1111 1111 1111 << 31 ==> 1000 0000 0000 0000 0000 0000 0000 0000 ==> -2147483648
b2 >>= 31 ==> 1111 1111 1111 1111 1111 1111 1111 1111 >> 31 ==> 1111 1111 1111 1111 1111 1111 1111 1111 ==> -1
b1 >>>= 31 ==> 0000 0000 0000 0000 0000 0000 0000 0001 >>> 31 ==> 0000 0000 0000 0000 0000 0000 0000 0000 ==> 0
b2 >>>= 31 ==> 1111 1111 1111 1111 1111 1111 1111 1111 >>> 31 ==> 0000 0000 0000 0000 0000 0000 0000 0001 ==> 1
Ⅷ 编号以0000-9999这种方式自动生成,java类应该怎么写
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getNumber(9999));
}
public static String getNumber(int num)
{
num++;
String result = "";
switch ((num+"").length()) {
case 1:
result = "000" + num;
break;
case 2:
result = "0" + num;
break;
case 3:
result = "0" + num;
break;
case 4:
result = "" + num;
break;
// 此处代表编号已经超过了9999,从0重新开始
default:
result = "0000";
break;
}
return result;
}
Ⅸ 在java中12的二进制是int是0000…1100,那么负12却是1111 1111 1111
原码就是二进制位,比如int 1的二进制表示为,最左端的为符号位,反码就是以上位对应值的相反值,0相反1,1相反为0,所以1的反码为,补码则是反码加1,所以1的补码为,而-1则是绝对值的反码,那么其实-1就是1的反码,你自己更具这个算法验证下12的二进制是,-12就是12的反码是不是这回事。
Ⅹ 有关java字节数组转换成字符串的问题,如byte[] {00,00}转成string 我想得到的是“0000”
写一个循环,循环数组里的每个数字,添加到字符串最后,循环结束之后就得到你要的结果了。