關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 303700

    累積人氣

  • 67

    今日人氣

    0

    追蹤人氣

【腳本】進位制說明與設定

我們日常生活中通常都是使用十進位,也就是9之後的數字如果在增加1
此時數字將會往左放置,個位數歸0,十位數從1開始
也就是變成了10,這就是進位,每10就近1次位
就可以推斷出:
十進位可顯示的數字為0、1、2、3、4、5、6、7、8、9,如果超過9就要進1位
所以二進位可顯示的數字為0、1,如果超過1就要進1位,所以不會顯示2以上的阿拉伯數字
(如果還是不太懂,基本上你可以把時鐘想成60進位,60秒會轉為1分鐘這樣的特性)
可以使用【.to_s(幾進位)】,來產生進位後的數值,並變成字符串的形式表示
以下是二進位0到10的結果:(由於二進位的關係,結果通常只會看到0和1的數字)
p 0.to_s(2) #=> "0"
p 1.to_s(2) #=> "1"
#數值0和數值1因該不用解釋了吧...
 
p 2.to_s(2) #=> "10"
#數值2會因為2進位制而進位變成十位數(也就是10的意思)
 
p 3.to_s(2) #=> "11"
#數值3因2進位制而取出2拿來進位成十位數,而剩下1無法進位,所以加起來成了11
 
p 4.to_s(2) #=> "100"
#數值4因2進位制而取出2拿來進位成十位數,剩下的2又因為2進位在進位成十位數,
#此時數值為20,又由於2進位制(2以上的數字不可以存在),所以20再次從十位數進位
#到百位數,所以此時值為100,就是依照這樣的特性在進位的,以下就依此類推了...
 
p 5.to_s(2) #=> "101"
p 6.to_s(2) #=> "110"
p 7.to_s(2) #=> "111"
p 8.to_s(2) #=> "1000"
p 9.to_s(2) #=> "1001"
p 10.to_s(2)
#=> "1010"
 
其他進位也同理(以下為8進位)
p 0.to_s(8) #=> "0"
p 1.to_s(8) #=> "1"
p 2.to_s(8) #=> "2"
p 3.to_s(8) #=> "3"
p 4.to_s(8) #=> "4"
p 5.to_s(8) #=> "5"
p 6.to_s(8) #=> "6"
p 7.to_s(8) #=> "7"
p 8.to_s(8) #=> "10"
p 9.to_s(8) #=> "11"
p 10.to_s(8)
#=> "12"
 
但有時也會發現超出十進位的進位法,例如:16進位
通常其結果常常會看到數字夾帶英文的情況,但其實那些英文只是用來替代用的
上面有說過:十進位可顯示的數字為0、1、2、3、4、5、6、7、8、9,如果超過9就要進1位
如果說要表示16進位,那超過9之後的數字該怎麼表示呢??,測試後發現以下:
p 0.to_s(16) #=> "0"
p 1.to_s(16) #=> "1"
p 2.to_s(16) #=> "2"
p 3.to_s(16) #=> "3"
p 4.to_s(16) #=> "4"
p 5.to_s(16) #=> "5"
p 6.to_s(16) #=> "6"
p 7.to_s(16) #=> "7"
p 8.to_s(16) #=> "8"
p 9.to_s(16) #=> "9"
p 10.to_s(16) #=> "a"
p 11.to_s(16) #=> "b"
p 12.to_s(16) #=> "c"
p 13.to_s(16) #=> "d"
p 14.to_s(16) #=> "e"
p 15.to_s(16) #=> "f"
p 16.to_s(16) #=> "10"
p 17.to_s(16) #=> "11"
p 18.to_s(16) #=> "12"
p 19.to_s(16) #=> "13"
p 20.to_s(16) #=> "14"
p 200.to_s(16)
#=> "c8"
 
這時就是用英文來做替代,來延伸後來的10以後的數字(畢竟在到16以前不會進位!)
所以用英文數字來做表示,a為10,b為11...就這樣依此類推,所以16進位能顯示的為
0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f(f為15,超過f的話就會進位成10)
通常英文都顯示小寫,但實際上大小寫基本上沒有區別,所以FF和ff是一樣的
當然進位後的數字也會保留進位的特性,所以出現16進位的b2為十進位的178
計算法:下1位的數值 x 第幾進位制 + 此位的數值11 x 16 + 2 = 178
 
假設16進位的數值為f4e,則10進位是...??
(第幾進位 x 百位數的數值 + 十位數的數值) x 第幾進位 + 個位數的數值(16 x 15 + 4) x 16 + 14
上一行框內的答案(或稱新的十位數...?!) x 第幾進位 + 個位數的數值244 x 16 +14 = 3918
所以16進位的數值f4e = 10進位的3918(簡單來說先從百位數開始算,在算十位數的計算法)
 
RMXP最高能答36進位(數值35視同z),由此可以知道...RMXP已經沒英文可以給你用了
37進位以上就會出現錯誤(一般人也用不到這麼多進位吧),0和1進位呢?一樣錯誤!!XD
 
如果用以上方法後,要將進位後的數字換回原本10進位制的話,可以使用【.to_i(幾進位)
只能用在字符串上!!(字符串為被"符號包圍住的內容),換回10進位制後會在變回數值!
例如:
p "FF".to_i(16) #=> 255
p "110011".to_i(2) #=> 51
 
p "511191".to_i(2) #=> 0
p "121111".to_i(2) #=> 1
p "11511".to_i(2) #=> 3
p "111171".to_i(2) 
#=>15
下面4個會發現,如果嘗試指定的進位制沒有的數值時的情況(2進位不可能會看到2以上數值)
由左往右看,如果發現不該出現的數值,則包含那個數字和後面的數字將會被忽略掉
只取前面合理的數值,所以:
p "511191".to_i(2) #同"0"to_i(2)
p "121111".to_i(2) #同"1"to_i(2)
p "11511".to_i(2) #同"11"to_i(2)
p "111171".to_i(2)  #同"1111"to_i(2)
 
當然也可以用數值的方式直接寫出已經進位的數目,不過前面必須加些符號來辨認才行
雖然是設定進位後的數值,但是顯示或是代入變量通常還是只會顯示十進位制的結果而已
p 0b1001 #=> 9(前面加上「0b」表示1001為2進位的數值)
p 0257 #=> 175(前面加上「0」表示275為8進位的數值)
p 0o257 #=> 175(前面加上「0o」和加上「0」沒什麼差別,一樣是8進位)
p 0x7E
#=> 126(前面加上「0x」表示7E為16進位的數值)
如果輸入不可能的數值(如:0b12),2進位制中不可能出現2以上的數字,所以會發生錯誤
 

 
備註(只是題外話而已)
你看RMXP或是小畫家的顏色設置方式,會分成紅、綠、藍3種顏色給你設定0~255的數值
數值越低表示該顏色越暗,數值越高表示該顏色越亮
而如果你有研究過網頁(沒學過就無視吧),在你設置顏色時,其格式為#000000
開頭為#符號,後面配合6個數字,前2個數字為紅、中間2個為綠,最後2個為藍(#000000
其實設置的方式和0~255的方式一樣,只是數字改成16進位制而已
16進位的數值ff和10進位的數值255是一樣的,所以假設網頁設置的顏色為#C377EF
則表示紅:195,綠:119,藍:239(你可以用我上面的公式來推算看看)
相簿設定
標籤設定
相簿狀態