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

(1)实现效果图:

《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]);
        }
    }

}

 

    原文作者:进制转换
    原文地址: https://blog.csdn.net/cf8833/article/details/84530369
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞