在某些地方,您可以將選項另存爲數字。例如,在設置文件權限時,您可以爲每組用戶使用0到7的值來傳遞它們。 數字的二進制表示中的每一位表示三個權限之一:讀,寫和執行,所以值爲7,二進制表示爲111表示文件可以是紅色,寫入和執行,而值爲5意味着該文件只能被紅色並執行,因爲二進制表示101.是這種方式保存js高效的真/假選項嗎?
備註:我不是操作系統如何管理文件的專家,我的解釋可能是錯誤的,但我確信代表這些選項的二進制數字的基本思想是在那裏實現的。
我現在想知道,如果它是有效的存儲true/false選項在二進制使用JavaScript。要做到這一點,我會按如下方式創建的JavaScript:
function OptionsGenerator(){
//this method takes a number, and returns an array of options.
this.num2options = function(num){
var str,len,opts=[];
if(typeof num !== "number") return false;
str = num.toString(2);
len = str.length;
for(var i=0;i<len;i++){
opts[i] = (str.charAt(i)==="1") ? true : false;
}
return opts;
}
//this function gets an array of options, and returns a number.
this.options2num = function(opts){
var str = "",o,opt;
for(o in options){
opt = (options[o]) ? 1 : 0;
str+=opt;
}
return parseInt(str,2);
}
//this function returns a specific option with an index ranging from 1 to the number of options set. takes 2 arguments: the first one is the set of options. This can either be a number or a string containing a binary representation of the number, the second parameter contains the index of the option.
this.getOption = function(num,optnum){
var str;
if(typeof num === 'number')
str = num.toString(2);
else
str = num;
return (num.charAt(optnum-1)==="1");
}
}
我的問題是,這是一種有效的方式來保存選項,如果是,是否有從二進制轉換爲數字的一個更有效的方法,並獲得一個特定的選項,或所有的選項?
它不應該是'RW =讀|寫'?由於二進制讀取爲「01」,寫入爲「10」,讀取和寫入將取消彼此,因爲沒有任何位對都是1. – bigblind 2011-06-06 16:02:31
@Frederik你是對的,修復它。 – Matt 2011-06-06 16:15:11