為人父母,多有不易。
父母都希望自己的孩子多才多藝,于是給孩子報這樣那樣的培訓班,希望從中挖掘孩子的天賦才能。
其實,我倒覺得家長可以考慮讓孩子接觸計算機編程開始。
可能有人說編程太費勁了,而我則不這麼認為。
如今科技産業不斷發展,人工智能,更離不開編程,小孩子從小抓起、學起編程,将成為一種受益終生的能力。
掌握編程不僅僅是為了長大了能謀求到一份工作,還可以因此提高孩子的思維能力。
邏輯思維能力我們來看下面一段程序:
int i = 1;
while (true) {
if (i > 0xA100) break;
i ;
}System.out.print("i等于:" i);
這段代碼大意是
while(true)是一個無窮循環語句 ,我們必須在它的循環語句内部加入一個判斷,當他達到了什麼要求就會跳出,避免程序進入死循環。
那麼i等于多少時,循環才會跳出呢?
答案是當 i>0xA100時,程序退出循環。
0xA100 等于多少?
這裡我們需要來弄清一下十六進制,已經十六進制轉換成十進制的算法。
十六進制在數學中是一種逢16進1的進位制。一般用數字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,這些稱作十六進制數字。
16進制前面的0x的目的是為了表示後面的數是十六進制(hexadecimal,縮寫為hex),在編程裡面一般都要加入,用來區别十進制數。
例如程序中的0xA100,其實就是A100。
十六進制轉換成十進制的具體算法:
我們來看下0xA100換算成10進制 是怎麼轉換的。
第0位:0 * 16^0 = 0
第1位:0 * 16^1 =0
第2位:1 * 16^2=256
第3位:10 * 16^3=10*4096 =40960
結果就是:0 0 256 40960 = 41216
0xA100 的值為41216, 即41217>41216 程序跳出循環。
如果上面的講解還不夠清晰,沒關系,我們再來看一個例子。
1CE換算成10進制:
第0位:E*16^0=14*16^0=14
第1位:C*16^1=12*16^1=192
第2位:1*16^2=256
結果就是:14 192 256=462
創造性拓展思維通過上面兩道題,我們知道了16進制轉成10進制,那麼10進制轉16進制,又是怎樣的呢,接下來我們一起來看看。
10進制轉16進制,采用“除16反向取餘數”的辦法。
除16取餘數得最低1位,然後把商繼續除得第2位,……,直到商等于0
所得的餘數為10~15時,分别用A~F表示。為了區分所得的結果是16進制而非10進制,通常有兩種表示方法:把答案用括号括起來,括号外注明16;或是直接加一個标記H。
例如:65036=(FE0C)16=FE0CH
對此,細心的你或許有這樣疑問,前綴0x和後綴H都表示十六進制有什麼區别嗎?
0x是16進制的前綴,H是16進制的後綴,都是表示十六進制數,意義上沒有什麼區别,完全相等。至于什麼時候用0x,什麼時候用H,這取決于我們在什麼環境下使用,如果在C/C ,必須用0x來表示。在C語言中是不能用H的。
我們來看一下 65036 是怎樣轉成16進制FE0C的。
試錯思維
我們再來計算一下 2020 轉成16進制是怎樣的
從下往上讀取每次的餘數,得2020的16進制為 7E4
看了,你會不會覺得編程也挺有意思的。
-END-
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!