設計二進位轉十進位的數字系統
2014/12/15 02:08
瀏覽2,302
迴響0
推薦0
引用0
今天剛好有學弟趕著交明天的報告,不會寫來拜託我,就花時間研究了一下這題
題目:
•進位轉換
–設計二進位轉十進位的數字系統
–二進位數字有五位數,其中第一位元為符號位元
–0: 正,1:負
–負數使用2的補數表示
•00110 - > 6
•10111 - > -9
–由使用者輸入一個二進位數字,由程式轉換成十進位候輸出顯示
一開始沒頭緒所以花了很多時間再想
最難的是要判斷前面的正負號
(就是第一個數字為1時,負數要使用補數表示)
我覺得我是用一個最簡單的方法去寫的
把所有的組合寫出來再去推斷何時開始要用補數表示
發現從16~31(二進位)開始要用補數表示
這時可以延用前面0~15的程式碼去推斷(我的想法是(32-X))
前面再加個-號就完成了
Java
package a;
import java.util.Scanner;
public class work {
public static void main(String[] args){
Scanner scn = new Scanner(System.in);
String a;
a = scn.nextLine();//輸入字串(二進位數字)
int b = Integer.parseInt(a,2);//將二進位數字轉成十進位
if(b>0 && b<=15){
System.out.println(b);//第一位為0(+)
}else if(b>15 && b<=31){
System.out.println("-" +(32-b)); //第一位為1(-),需用補數表示
}else{
System.out.println("Error!");//輸入錯誤
}
}
}
因為是學弟拜託的所以成就感大增!
你可能會有興趣的文章:
限會員,要發表迴響,請先登入