Endianエンディアン関数

本ページには広告が含まれています。

ビッグエンディアン・リトルエンディアンをもう一方のエンディアンに相互変換します。

構文
  1. UString = Endian( str )
引数
str 必須
相互変換させるバイナリデータ
戻り値
変換したバイナリデータ

プログラム

UWSC
//////////////////////////////////////////////////
// 【引数】
//   str : 相互変換させるバイナリデータ 
// 【戻り値】
//   変換したバイナリデータ 
//////////////////////////////////////////////////
FUNCTION Endian(str)
	DIM len = LENGTH(str)
	
	IFB !isEven(len) THEN
		str = "0" + str
		len = len + 1
	ENDIF
	
	DIM res = ""
	FOR n = 1 TO len STEP 2
		res = COPY(str, n, 2)  + res
	NEXT
	
	RESULT = res
FEND

//////////////////////////////////////////////////
// 【引数】
//   expr : 評価する式 
//   truepart : 評価した式がTrueのときに返す値 
//   falsepart : 評価した式がFalseのときに返す値 
// 【戻り値】
//   truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき 
//////////////////////////////////////////////////
FUNCTION IIF(expr, truepart, falsepart)
	IFB EVAL(expr) THEN
		RESULT = truepart
	ELSE
		RESULT = falsepart
	ENDIF
FEND

//////////////////////////////////////////////////
// 【引数】
//   数値 : 整数 
// 【戻り値】
//   True : 偶数、False : 偶数以外の数値、ERR_VALUE : 数値以外 
//////////////////////////////////////////////////
FUNCTION isEven(n)
	IFB VAL(n) = n THEN
		RESULT = IIF(INT(n) MOD 2 = 0, TRUE, FALSE)
	ELSE
		RESULT = ERR_VALUE
	ENDIF
FEND

使い方

ビットマップ画像からバイナリデータを読み込むとき、取得したデータを相互変換するときに使ったりします。

UWSC
PRINT Endian("c3f60000")
結果
UWSC
0000f6c3

関連記事

IDTOHND関数 (スクリプト関数)
IDをハンドル値に変換します。
STRCONV関数 (スクリプト関数)
文字列を大文字・小文字、ひらがな・カタカナ、全角・半角の相互変換を行います。
radToDeg関数 (自作関数)
弧度法から度数法に変換します。
degToRad関数 (自作関数)
度数法から弧度法に変換します。
hexToDec関数 (自作関数)
16進数を10進数に変換します。負数・小数の値にも対応しています。
decToHex関数 (自作関数)
10進数を16進数に変換します。負数・小数の値にも対応しています。
binToDec関数 (自作関数)
2進数を10進数に変換します。負数・小数の値にも対応しています。
binToHex関数 (自作関数)
2進数を16進数に変換します。負数・小数の値にも対応しています。
hexToBin関数 (自作関数)
16進数を2進数に変換します。負数・小数の値にも対応しています。
decToBin関数 (自作関数)
10進数を2進数に変換します。負数・小数の値にも対応しています。