日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java bits_一段关于JAVA程序升级的问题(Changing bits)

發布時間:2023/12/2 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java bits_一段关于JAVA程序升级的问题(Changing bits) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

展開全部

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.UIManager;

import javax.swing.event.CaretEvent;

import javax.swing.event.CaretListener;

public class BitChanger {

public static void main(String[] args) {

try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exception e){}

String s="HELLO";

System.out.println(s);

System.out.println(toBinaryString(s));

System.out.println(toHexString(s));

System.out.println(changeBit(toBinaryString(s),12));

System.out.println(toNormalString(changeBit(toBinaryString(s),12)));

System.out.println(toHexString(toNormalString(changeBit(toBinaryString(s),12))));

JFrame f=new JFrame("Bit changer v1.0");

f.setSize(433,230);

f.setDefaultCloseOperation(3);

f.getContentPane().setLayout(null);

JLabel l1=new JLabel("Enter a string:");

final JTextField input=new JTextField(20);

final JLabel binary=new JLabel();

final JLabel hex=new JLabel();

JLabel l2=new JLabel("Enter the Bit number to flip:");

final JTextField flip=new JTextField(5);

JButton change=new JButton("Change
Bit");

JButton exit=new JButton("Exit");

l1.setBounds(10,10,100,25);

input.setBounds(110,10,100,25);

binary.setBounds(10,45,400,25);

hex.setBounds(10,80,400,25);

l2.setBounds(10,115,208,25);

flip.setBounds(220,115,40,25);

change.setBounds(270,115,68,45);

exit.setBounds(123,150,60,30);

f.add(l1);

f.add(l2);

f.add(input);

f.add(binary);

f.add(hex);

f.add(flip);

f.add(change);

f.add(exit);

f.setVisible(true);

binary.setBorder(BorderFactory.createLineBorder(Color.blue));

hex.setBorder(BorderFactory.createLineBorder(Color.red));

input.addCaretListener(new CaretListener(){

public void caretUpdate(CaretEvent e) {

binary.setText(toBinaryString(input.getText()));

hex.setText(toHexString(input.getText()));

}});

change.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

try{

int id=Integer.parseInt(flip.getText().trim());

input.setText(toNormalString(changeBit(toBinaryString(input.getText()),id)));

}catch(Exception ex){}

}});

exit.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

System.exit(-1);

}});

}

private static String toNormalString(String binary){

String[] sp=binary.split(" ");

String v="";

for(int i=0; i

v+=(char)Integer.valueOf(sp[i],2).intValue();

}

return v;

}

private static String changeBit(String s,int bi){

if(s.isEmpty())return s;

int cid=bi/8;

int bid=bi%8;

char ch=s.charAt(cid*9+bid-1);

ch=ch=='0'?'1':'0';

s=s.substring(0,cid*9+bid-1)+ch+s.substring(cid*9+bid);

return s;

}

private static String toBinaryString(String s) {

if(s.isEmpty())return s;

String v="";

for(int i=0; i

String bs=Integer.toBinaryString(s.charAt(i));

while(bs.length()<8)

bs='0'+bs;

v+=bs+" ";

}

return v;

}

private static String toHexString(String s){

if(s.isEmpty())return s;

String v="";

for(int i=0; i

String bs=Integer.toHexString(s.charAt(i));

v+=" "+bs.toUpperCase()+" ";

}

return v;

}

}

本回答由提問者推薦

已贊過

已踩過<

你對這個回答的評價是?

評論

收起

總結

以上是生活随笔為你收集整理的java bits_一段关于JAVA程序升级的问题(Changing bits)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。