คำถามครับ
input = พิมพ์ "ก"
แปลงเป็น byte เลขฐาน 2 ได้ "10100001"
ต่อมาต้องการแปลงเป็นแบบใช้เครื่องหมาย 1.0100001 = -0.7421 (ตรงขั้นตอนนี้เขาเรียกกันว่าอะไรครับ)
ผมเขียนโค้ดมาคือ
int s10 = Integer.parseInt(mySub1.substring(0,1).replace("1", "-1"));
int s11 = Integer.parseInt(mySub1.substring(1,2));
int s12 = Integer.parseInt(mySub1.substring(2,3));
int s13 = Integer.parseInt(mySub1.substring(3,4));
int s14 = Integer.parseInt(mySub1.substring(4,5));
int s15 = Integer.parseInt(mySub1.substring(5,6));
int s16 = Integer.parseInt(mySub1.substring(6,7));
int s17 = Integer.parseInt(mySub1.substring(7,8));
double result0 = s10*Math.pow(2,0);
double result1 = s11*Math.pow(2,-1);
double result2 = s12*Math.pow(2,-2);
double result3 = s13*Math.pow(2,-3);
double result4 = s14*Math.pow(2,-4);
double result5 = s15*Math.pow(2,-5);
double result6 = s16*Math.pow(2,-6);
double result7 = s17*Math.pow(2,-7);
double summer = result0 + result1 +result2+result3+result4+result5+result6+result7;
น่าจะมีจุดออ่อนเยอะ แนะนำหน่อยครับ
ถามต่อครับ
แล้วพอจะมีวิธีแปลงกลับไหมครับ
เช่น ให้ -0.7421 กลายเป็น 10100001
ขอบคุณครับ
java - การแปลง ชนิดตัวแปร
input = พิมพ์ "ก"
แปลงเป็น byte เลขฐาน 2 ได้ "10100001"
ต่อมาต้องการแปลงเป็นแบบใช้เครื่องหมาย 1.0100001 = -0.7421 (ตรงขั้นตอนนี้เขาเรียกกันว่าอะไรครับ)
ผมเขียนโค้ดมาคือ
int s10 = Integer.parseInt(mySub1.substring(0,1).replace("1", "-1"));
int s11 = Integer.parseInt(mySub1.substring(1,2));
int s12 = Integer.parseInt(mySub1.substring(2,3));
int s13 = Integer.parseInt(mySub1.substring(3,4));
int s14 = Integer.parseInt(mySub1.substring(4,5));
int s15 = Integer.parseInt(mySub1.substring(5,6));
int s16 = Integer.parseInt(mySub1.substring(6,7));
int s17 = Integer.parseInt(mySub1.substring(7,8));
double result0 = s10*Math.pow(2,0);
double result1 = s11*Math.pow(2,-1);
double result2 = s12*Math.pow(2,-2);
double result3 = s13*Math.pow(2,-3);
double result4 = s14*Math.pow(2,-4);
double result5 = s15*Math.pow(2,-5);
double result6 = s16*Math.pow(2,-6);
double result7 = s17*Math.pow(2,-7);
double summer = result0 + result1 +result2+result3+result4+result5+result6+result7;
น่าจะมีจุดออ่อนเยอะ แนะนำหน่อยครับ
ถามต่อครับ
แล้วพอจะมีวิธีแปลงกลับไหมครับ
เช่น ให้ -0.7421 กลายเป็น 10100001
ขอบคุณครับ