※ 引述《ben1357956 (QQ雞腿)》之銘言:
: 如題
: 我想要輸入一串數字
: 自動輸出成米字號的樣子
: 像是輸入1
: 跑出下列這樣
: *
: *
: *
: *
: *
: *
: *
: 新手上路,多多指教
我想你的問題大約是輸入數字,要產生對應的點陣圖,例如:
> 23904
2222 3333 9999 0000 4 4
2 3 9 9 0 0 4 4
2222 3333 9999 0 0 4444
2 3 9 0 0 4
2222 3333 9999 0000 4
這題目就是先將各個數字的點陣圖以數字存起來,例如:數字 2 的點陣圖
如下,中間圖形是將左邊的點陣以二進位表示,右邊為將二進位數換成十進位
數字表示,如此數字二的 5x4 點陣就可用 15,1,15,8,15 等五個數字替代。
**** 1111 15
* 0001 1
**** 1111 15
* 1000 8
**** 1111 15
接下來當然就是要如何由各列的 10 進位數字得知其二進位的位元是 0 或
是 1,若為 1 則印資料,若為 0 則印空格,此時可利用 >> 運算子將數字
的位元向右移若干位,例如:數字 12 的二進位為 1100 使用 >> 可向右移
動若干個位元,觀察以下可知數字 12 各位元的資料都被擠到最右邊,同時
最右邊的位元剛好控制數字為奇數或偶數,如此一來就可用 %2 得知,
整個過程如下:
12 >> 0 ===> 1100 %2 後得