說我有這個值xxx
(十六進制)007800780078
如何使用按位運算將十六進制值轉換回字符? 我可以嗎?使用按位運算將HEX轉換爲字符
-2
A
回答
2
我想你可能做它使用「按位」操作,但它可能是一個可怕的一團糟的代碼以及完全沒有必要,因爲ILE RPG可以使用適當的內置函數輕鬆完成。
首先,你不完全有什麼通常被認爲是「十六進制」值。也就是說,你正在顯示一個值的十六進制表示;但基本的「十六進制」轉換不會給出有用的結果。你顯示的內容似乎是「xxx」的UCS-2值。
下面是一個簡單的例子示出的是十六進制字符串轉換成標準字符值:
d ds
d charField 6 inz(x'007800780078')
d UCSField1 3c overlay(charField)
d TargetField s 6
d Length s 10i 0
/free
Length = %len(%trim(UCSField1));
TargetField = %trim(%char(UCSField1));
*inlr = *on;
return;
/end-free
的代碼有一個DS,其包括兩個子字段。第一個是一個簡單的字符字段,用於聲明初始化爲x'007800780078'的六個字節的內存。第二個子字段被聲明爲數據類型'C'以指示UCS-2,並且它覆蓋第一個子字段。因爲它是UCS-2,所以其大小爲「3」,以允許三個字符。 (每個字符都是16位寬。)
可執行語句不會做太多,只是足以讓您測試轉換後的值。使用調試,你應該看到長度出來是(3)和TargetField變成'xxx'。
%CHAR()內置函數可用於將UCS-2轉換爲程序使用的字符編碼。要走相反的方向,使用%UCS2()內置函數。
相關問題
- 1. 將Unicode轉換爲按位運算的字符
- 2. 將SQL位運算符轉換爲C#的示例按位運算符
- 3. 將字符串轉換爲運算符?
- 4. 將字符串轉換爲運算符
- 5. 將字符串轉換爲運算符
- 6. 按位運算符將0轉換爲1並將1轉換爲0
- 7. 將HEX字符串轉換回AES
- 8. 將BASE64字符串轉換爲BASE16(HEX)字符串?
- 9. 將char轉換爲算術運算符
- 10. 按位運算符並將int轉換爲2個字節再返回
- 11. 將java方法轉換爲C#:使用位移運算符將字節轉換爲整數
- 12. 在perl中將數字轉換爲HEX
- 13. HSQLDB:將NUMERIC轉換爲HEX
- 14. 將NSString轉換爲int HEX
- 15. VBA - 將字符串轉換爲算術運算符
- 16. 將hex std :: string轉換爲無符號字符
- 17. 使用按位運算從基數10轉換爲基數
- 18. 使用按位運算交換字符串
- 19. 轉換ASCII字符串爲整數使用C&位運算符反之亦然
- 20. 將int轉換爲二進制,對其執行按位運算
- 21. 將char(又名:'+')轉換爲運算符
- 22. 將VB轉換爲C#help(?運算符)
- 23. 將<>運算符轉換爲python3
- 24. 將字符串轉換爲算術運算
- 25. 用bash將hex轉換爲uint64_t
- 26. 在C++中使用按位運算符將4個字符更改爲int
- 27. 將Hex的字符串轉換爲文本的NSString?
- 28. java將Hex NCRs文本轉換爲Unicode字符
- 29. 將整數數組轉換爲HEX字符串
- 30. 如何將NSString轉換爲Objective-C中的HEX字符串?
谷歌的你的朋友。 – Charles
嗨@Charles,我知道(並找到)如何轉換十六進制數字,但找不到任何有關字符串的好消息。我知道有桌子,但我想要一個「通用」的方式來做到這一點。 – LppEdd
CVTHC。這可能是答案嗎? – LppEdd