Skip to content

Instantly share code, notes, and snippets.

@lunark
Created December 6, 2018 17:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lunark/be1d791b78b5d417632be0df82a2e6f1 to your computer and use it in GitHub Desktop.
Save lunark/be1d791b78b5d417632be0df82a2e6f1 to your computer and use it in GitHub Desktop.
(ウンコード注意)なんちゃってzBase1024
// Try edit msg
var b1024string = '院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼'
var b1024supress = '0abcdefghi';
var inputstring = '111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
//使い方
var b256 = tozBase1024(inputstring);
var b2 = toBitString(b256);
console.log(b256);
console.log(b256.length);
console.log(b2);
console.log(b2.length);
//2進文字列→zBase1024化
function tozBase1024(input){
var processinputString = "";
var outstring = "";
var num_supressdigit = input.length % 10;
var num_needSupressDigit = 0;
var supresscode = '';
//nullの時の処理
if (input == ''){
return '';
}
//サプレスコードの決定
if (num_supressdigit >0){
supresscode= b1024supress.charAt(10 - num_supressdigit);
num_needSupressDigit = 10 - input.length % 10;
}
//ゼロサプレスの実行
for(var j = 0; j < num_needSupressDigit; j++){
input += '0';
}
for(var i = 1; i < input.length; i = i + 10){
//2進文字列を10桁取り出す
var pos = i - 1;
processinputString = input.substr(pos, 10);
//256進変換する
outstring += b1024string.charAt(parseInt(processinputString,2));
}
//最後に出力する
outstring += supresscode;
return outstring;
}
//2進文字列への変換関数
function toBitString(input){
var processinputString = '';
var outstring = '';
var trimlength = 0;
//nullの時の処理
if (input == ''){
return '';
}
for (var i = 0; i < input.length; i++){
if (i == (input.length - 1)){
//トリムすべき長さを確認する
trimlength = b1024supress.indexOf(input.charAt(i));
if(trimlength >0){
outstring = outstring.substring(0,outstring.length - trimlength);
}else if(trimlength<0){
outstring += zeroPadding(parseInt(b1024string.indexOf(input.charAt(i))).toString(2),10);
}
} else {
//見つかった文字列のIDを拾って2次変換
outstring += zeroPadding(parseInt(b1024string.indexOf(input.charAt(i))).toString(2),10);
}
}
//最後に出力する
return outstring;
}
function zeroPadding(num,length){
return ('000000000000000000000000000000000000000000' + num).slice(-length);
}
@lunark
Copy link
Author

lunark commented May 10, 2021

テンプレートは差し込めるが、出来合のWeb系フォームシステムに
何らかのバイナリ値をぶち込まなきゃいけない時に利用するために作りました。
例えばチェックボックスの値の組み合わせであるとかをこれでエンコード/デコードします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment