爱上进制转换练习
引言
對于可能接觸到通訊行業或是物聯網的開發工作者,一般會面對十進制、二進制、十六進制的轉換工作,不僅僅是體現在代碼上,有時候也需要用肉眼來進行快速的轉化,以獲取協議指令中的信息。
今天通過簡單的整理,特此將這三種轉化整理成一張表,并配上三個單獨的執行程序。作為日后記憶的參考;而三個可執行程序是為了每天進行練習。
進制對照表
其中紅色框代表比較有特點的二進制,綠色框代表十六進制和十進制完全相同的數。
練習程序
二進制識讀練習
代碼中,使用一個隨機數,隨機產生0-15之間任意的數,并格式化為4比特位的二進制,兩秒輸出一個,十個一換行,無限循環。大家可以根據控制臺輸出的二進制數快速的在心中說出對應的十六進制或者十進制的數字,這樣長期練習應該可以把三種進制之間的轉化玩的很溜。
/*** 死循環輸出0-15之間任意的數字,然后顯示二進制,在腦海中回想對應的16或10進制。* * @author mht* @date 2018年10月30日上午10:28:25*/ public class 二進制練習 {public static final String[] ZEROS = { "", "0", "00", "000" };public static void main(String[] args) throws InterruptedException {Random rdm = new Random();int lineCount = 0;for (;;) {int out = rdm.nextInt(16);TimeUnit.SECONDS.sleep(2);if (lineCount == 10) {System.out.println();lineCount = 0;}System.out.print(format4Bits(out));lineCount++;}}private static String format4Bits(Integer unformatNum) {if (unformatNum == null)throw new InvalidParameterException("參數異常!");String binaryString = Integer.toBinaryString(unformatNum);int diff = 4 - binaryString.length();return ZEROS[diff] + binaryString + " ";}}?十六進制識讀練習
和二進制識讀練習類似,控制臺會隨機輸出一個0-15之間的任意數,轉化為十六進制輸出,我們需要在心中快速念出對應的二進制和十進制的數字。勤加練習,相信應該可以找到一定的技巧。
/*** 死循環輸出0-15之間任意的數字,然后顯示十六進制,在腦海中回想對應的2或10進制。* @author mht* @date 2018年10月30日上午10:29:52*/ public class 十六進制練習 {public static void main(String[] args) throws InterruptedException {Random rdm = new Random();int count = 0;for (;;) {int out = rdm.nextInt(16);TimeUnit.SECONDS.sleep(2);if (count == 10) {System.out.println();count = 0;}System.out.print(Integer.toHexString(out).toUpperCase() + " ");count++;}} }十進制識讀練習?
/*** 死循環輸出0-15之間任意的數字,然后顯示,在腦海中回想對應的16或2進制。* @author mht* @date 2018年10月30日上午10:29:35*/ public class 十進制練習 {public static void main(String[] args) throws InterruptedException {Random rdm = new Random();int count = 0;for (;;) {int out = rdm.nextInt(16);TimeUnit.SECONDS.sleep(2);if (count == 10) {System.out.println();count = 0;}System.out.print(out + " ");count++;}} }學習感想
此練習最好每天堅持5到10分鐘,堅持一周到兩周,效果應該會體現出來。
隨著對進制的理解,我們應該逐漸地不再懼怕進制的轉化和運算。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: idal 创建springboot 项目
- 下一篇: 测量怎么显示坐标_全站仪坐标放样究竟如何