java十进制转二进制,并且将01单独取出放到数组

(2)实现目的:

因为我们的机器返回的是二进制数据,在android端需要对这个二进制进行接收,但是这个二进制在接收的过程中被转换成了int数组接收显示的,所以需要我们另外写一个方法来进行还原

六种音源分别是

光纤,高电平,蓝牙,低电平,同轴,U盘播放器

对应的二进制分别为:

1 1 1 1 1 1 或者0 0 0 0 0 0

其中0表示没有此项音源,1表示有此音源,例如服务器返回给我们的int值是46,转换为2进制就是:101110

那么,我们的软件音源就包括U盘,低电平,蓝牙,高电平,光纤

如果服务器返回的数据是14,转换为二进制位001110.那么我们软件的音源为低电平、蓝牙、高电平

(3)实现代码:

public class MainActivity extends AppCompatActivity {
    private TextView tv;
    private EditText et;
    private Button btn;
    private final static int MAXbINARY = 6;
    private String[] binaryTs = new String[MAXbINARY];

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.text);

        tv = (TextView)findViewById(R.id.tv);
        et = (EditText)findViewById(R.id.et);
        btn = (Button)findViewById(R.id.button);

        btn.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SetTextI18n")
            @Override
            public void onClick(View view) {
                try {
                    String a = et.getText().toString();
                    binaryToDecimal(Integer.parseInt(a));
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        });
    }

    public void binaryToDecimal(int n){
        String str = "";
        int i=0;
        while(n!=0){
            str = n%2+str;
            Log.e("TAG","循环测试次数");
            binaryTs[i] = String.valueOf(str.subSequence(0,1));
            n = n/2;
            i++;
        }
        System.out.println(str);
        tv.setText(""+str);
        for(int j=0;j<MAXbINARY;j++){
            Log.e("TAG","打印数组: "+  binaryTs[j]);
        }
    }

}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.administrator.testz.MainActivity">



    <EditText
        android:id="@+id/et"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:hint="请输入要转换的数字" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="十进制转二进制" />

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
</LinearLayout>

end

经验分享 程序员 微信小程序 职场和发展