Ⅰ 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」
寫一個循環,循環數組里的每個數字,添加到字元串最後,循環結束之後就得到你要的結果了。