Weil Jimmer's BlogWeil Jimmer's Blog


Month:January 2014

Found 3 records. At Page 1 / 1.

PHP/VB__ASCII轉換器

No Comments
-
更新於 2017-01-16 18:55:54

關於這點,真的是有夠麻煩的,我經常寫php,php通常UTF-8的網頁都是 "一個中文字"

轉成三個Ascii碼,現在才開始研究,到底要怎樣才可以像 VB 一樣 轉成 5位數的代碼。

又或者 VB 轉成 UTF-8形式的 3 個 ASCII。

好吧,結果出來了。

Unicode 介於 2048(800) ~ 65535(ffff) 之間:

套用形式:

1110****

10******

10******

比如:「我」,Unicode 為 25105 (6211),介於上述的情況。

所以:轉成 2進位 110001000010001

切成 三等分,第一等分 四位數,第二等分 六位數,第三等份六位數。不足則補0。

所以變成 0110001000010001,切割後變成:

0110

001000

010001

套進去變成

11100110

10001000

10010001

轉回 10 進位:

230

136

145

形成 UTF8形式的 三個ASCII碼。

另外,介於 128(80) ~ 2047(7ff) 間 則是另一個形式。

110*****

10******

大概就這樣。

有夠複雜的。

其實網頁 也可以 直譯 ASCII碼。

ABC

ABC

這是測試

這是測試

我自己本身也寫了 PHP函數 轉 成 像 VB那樣的UTF16

function string_to_utf16_ascii_HTML($str){
	for ($i=0;$str[$i]!="";$i++){
		$b[]=ord($str[$i]);
	}
	$str2=';&#';
	for ($i=0;$str[$i]!="";$i++){
		$xa=str_pad(decbin($b[$i]),8,'0',STR_PAD_LEFT);
		if (substr($xa,0,3) == "110"){
			$xb=str_pad(decbin($b[$i+1]),8,'0',STR_PAD_LEFT);
			$xx1=substr($xa,3);
			$xx2=substr($xb,2);
			$c=$c.$str2.bindec($xx1.$xx2);
		}elseif (substr($xa,0,4) == "1110"){
			$xb=str_pad(decbin($b[$i+1]),8,'0',STR_PAD_LEFT);
			$xc=str_pad(decbin($b[$i+2]),8,'0',STR_PAD_LEFT);
			$xx1=substr($xa,3);
			$xx2=substr($xb,2);
			$xx3=substr($xc,2);
			$c=$c.$str2.bindec($xx1.$xx2.$xx3);
		}elseif (substr($xa,0,2) == "10"){
		}else{
			$c=$c.$str2.$b[$i];
		}
	}
	return substr($c,1);
}

再次更新,這個PHP代碼速度更快。

function string_to_utf16_ascii_HTML($str){
	for ($i=0;$i<strlen($str);$i++){
		$k=ord($str[$i]);
		if ($k >= 192 and $k <= 223){
			$k=$k-192;
			$k2=ord($str[$i+1])-128;
			$c=$c.'&#'.str_pad($k*64+$k2,5,'0',STR_PAD_LEFT).';';
		}elseif ($k >= 224 and $k <= 239){
			$k=$k-224;
			$k2=ord($str[$i+1])-128;
			$k3=ord($str[$i+2])-128;
			$c=$c.'&#'.str_pad($k*4096+$k2*64+$k3,5,'0',STR_PAD_LEFT).';';
		}elseif ($k >= 128 and $k <= 191){
		}else{
			$c=$c.'&#'.str_pad($k,5,'0',STR_PAD_LEFT).';';
		}
	}
	return $c;
}

又寫了等價VB的ChrW於PHP版。

function ChrW($str){
	$str=intval($str);
	$binnum=decbin($str);
	if ($str<=255){ return chr($str); }elseif($str>=256 and $str<=2047){
		$binnum=str_pad($binnum,11,'0',STR_PAD_LEFT);
		$x1=bindec('110'.substr($binnum,0,5));
		$x2=bindec('10'.substr($binnum,5,6));
		return chr($x1).chr($x2);
	}else{
		$binnum=str_pad($binnum,16,'0',STR_PAD_LEFT);
		$x1=bindec('1110'.substr($binnum,0,4));
		$x2=bindec('10'.substr($binnum,4,6));
		$x3=bindec('10'.substr($binnum,10,6));
		return chr($x1).chr($x2).chr($x3);
	}
}

By Weil Jimmer


This entry was posted in Functions, PHP, VB.NET By Weil Jimmer.

羅馬2 全軍破敵 的大缺點 RTW2 (Rome 2 : Total War)

No Comments
-
更新於 2017-03-04 15:01:52

個人 玩了好幾場羅馬後,也看了 不少 說羅馬很爛的影片或文章,

令我自己也覺得...真的很爛。但是畢竟都花錢買了。

也許大家都認為就 bug 多而已。

  1. 我「個人」覺得音樂配的沒有比 羅馬1 好。
  2. 戰前,沒有 演講,很多人說:「有」 但在我看來就是沒有,就 按下開始後,將軍在那邊小小的發聲,而且還要 全部人停下不動 將軍才會講話,不然就 甚麼都沒顯示,也沒字幕,真的很爛,有些人也說:「覺得沒差。」但我認為這一定要有的阿!
  3. 軍隊 大象 幾乎 無敵 也是 bug 不知道 修了沒,感覺還是沒什麼差別,大象還是很強大!
  4. 還有,羅馬1 的時候,按著ALT+滑鼠右鍵,可以保持隊形移動,現在...沒這選項,就算我沒加 ALT 好了,沒有編組,選好直接往前走,都會變成 【一直線】,我真的,感到很不爽,不能保持隊形,又變一直線,按著右鍵 拖移軍隊,這真的很爛。沒有快捷鍵就不好用。可以拉長度的那個功能,就是選擇多寬多長,拉完後,軍隊會變成『急行軍』這是怎麼回事?又不是每個人都喜歡變急行軍,羅馬1都沒有這樣。真的是,改得很爛。用跑步的會讓軍隊 體力變弱......。而且 雙排的排法也 改得很討厭。2排,前面竟然放遠程...,要不然你就用 "2個雙排",一個是 前排遠程,一個是 前排近戰步兵。但是只有一個排法,這令我很不滿意,我以前的排法消失了...。保持隊形移動還要 編組!Ctrl + G,鎖定 隊形,這真的很爛,因為我根本就不想要編組,而且,他到達滑鼠點擊的目標怪怪的,就是 走的路線和位置 都沒有到達我點的目標,有些時候還會旋轉!真的是很火大,每次都要花時間在排隊上面。
  5. 那就是 AI 很爛...,一直以來都是這樣,每次都贏阿,電腦自動選兵每次都贏,God...難道就不能輸幾場嗎?
  6. 歷史戰役很少,可以選的派系更少!相較之下,派系 竟然拿來當成DLC賣了,這是甚麼破爛情況,整個遊戲 感覺上都是 半成品就搬出來,現在被評的 很爛。該不會以後,出一個歷史戰役包DLC。
  7. 百科 竟然不是內建...,圖片連網,文字內建,但是開百科就是很慢,難道把網頁圖片檔案抓下來 都不想嗎?
  8. 聊天室 貌似還有鎖區,都沒看到別人輸入的內容,只有自己的,這設計真的很不好。
  9. 長槍方陣 的設計...,這個我不想再多說了,自己玩玩看大概就知道 哪裡不好。
  10. 最後,語系應該在出一個繁體中文、簡體中文,要打入亞洲市場 怎麼可以沒有中文呢!

如果 CA 以後 修正了 8成以上我個人感覺的,那我 絕對會每天玩 羅馬2 的,而且不會再評它很爛了。

By Weil Jimmer


This entry was posted in General By Weil Jimmer.

關於小數的進位法 10進位轉2進位、2進位轉10進位。

No Comments
-
更新於 2017-05-24 17:03:16

這個問題真的很難處理很難處理!然而網路上也是Google 很久才有的資料。

好吧進入正題。

首先,大家應該都知道,進位算法就是取餘數,但是小數的算法卻是 乘 起來,取整。

Example:

*****0.625 轉 2進位制:

第1式:0.625 × 2 = 1.250 =======>1

第2式:0.250 × 2 = 0.500 =======>0

第3式:0.500 × 2 = 1.000 =======>1

答案是:101

*****0.125 轉 2進位制:

第1式:0.125 × 2 = 0.250 =======>0

第2式:0.250 × 2 = 0.500 =======>0

第3式:0.500 × 2 = 1.000 =======>1

答案是:001

*****0.3 轉 2進位制:

第1式:0.3 × 2 = 0.6 =======>0

第2式:0.6 × 2 = 1.2 =======>1

第3式:0.2 × 2 = 0.4 =======>0

第4式:0.4 × 2 = 0.8 =======>0

第5式:0.8 × 2 = 1.6 =======>1

第5式 偵測到重複字串,造成循環無限小數。

由第2式開始循環字串。

答案是:01001

這樣大概就夠了,這是 10 轉 2 的方式,其他就以此類推。

但是網路上很少有提到!轉回來。只有轉過去。

123.45 = 1 × 102 + 2 × 101 + 3 × 100 + 4 × 10-1 + 5 × 10-2

所以,小數點後,如果是2進位,則是2-1、2-2、2-3 ‧‧‧‧‧‧‧以此類推。

真是難處理,尤其是無限小數的轉換。

所以,我原本也想做一個很棒的程式,但看樣子,我也許得放棄了。

因為有夠麻煩!我目前的程式因為 算的精度太高了,所以無法處理無限小數的問題。

我大概 應該還會繼續完成的樣子,只是需要時間思考。


This entry was posted in Functions By Weil Jimmer.

 1 /1 頁)

Visitor Count

pop
nonenonenone

Note

台灣假新聞橫行,沒一家霉體能信的,網軍側翼到處洗風向,堪憂。

毋忘初心,
絕不利慾薰心。

支持網路中立性.
Support Net Neutrality.

飽暖思淫欲,
饑寒起盜心。

支持臺灣實施無條件基本收入

今天是國際盲人節。

Words Quiz


Search

Music

Blogging Journey

4428days

since our first blog post.

The strong do what they can and the weak suffer what they must.

Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

Without music life would be a mistake.

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1gtuwCjjVVrNUHPGvW6nsuWGxSwygUv4x
buymeacoffee
Register in linode via invitation link and stay active for three months.Linode

Support The Zeitgeist Movement

The Zeitgeist Movement

The Lie We Live

The Lie We Live

The Questions We Never Ask

The Questions We Never Ask

Man

Man

THE EMPLOYMENT

Man

In The Fall

In The Fall

Facebook is EATING the Internet

Facebook

Categories

Android (7)

Announcement (4)

Arduino (2)

Bash (2)

C (3)

C# (5)

C++ (1)

Experience (52)

Flash (2)

Free (13)

Functions (36)

Games (13)

General (60)

Git (2)

HTML (7)

Java (13)

JS (7)

Mood (24)

NAS (2)

Note (32)

Office (1)

OpenWrt (6)

PHP (9)

Privacy (4)

Product (12)

Python (4)

Software (11)

The Internet (25)

Tools (16)

VB.NET (8)

WebHosting (7)

Wi-Fi (5)

XML (4)