1. 程式人生 > >C# 16進位制(hex)字串到位元組流的轉換 示例

C# 16進位制(hex)字串到位元組流的轉換 示例

在工程實踐中,經常會將一些位元組資訊轉換為16進位制字串,以便傳遞和分享,比如加密金鑰資訊。在這裡提供一段轉化示例, 以供交流學習。

將16進位制字串轉化為 位元組流

        public static byte[] HexStringToBytes(string hexStr)
        {
            if (string.IsNullOrEmpty(hexStr))
            {
                return new byte[0];
            }

            if (hexStr.StartsWith("0x"
)) { hexStr = hexStr.Remove(0, 2); } var count = hexStr.Length; if (count % 2 == 1) { throw new ArgumentException("Invalid length of bytes:" + count); } var byteCount = count / 2; var
result = new byte[byteCount]; for (int ii = 0; ii < byteCount; ++ii) { var tempBytes = Byte.Parse(hexStr.Substring(2 * ii, 2), System.Globalization.NumberStyles.HexNumber); result[ii] = tempBytes; } return result; }

將位元組流轉化為16進位制字串

        public static string BytesTohexString(byte[] bytes)
        {
            if (bytes == null || bytes.Count() < 1)
            {
                return string.Empty;
            }

            var count = bytes.Count();

            var cache = new StringBuilder();
            cache.Append("0x");
            for (int ii = 0; ii < count; ++ii)
            {
                var tempHex = Convert.ToString(bytes[ii], 16).ToUpper();
                cache.Append(tempHex.Length == 1 ? "0" + tempHex : tempHex);
            }

            return cache.ToString();
        }

相關推薦

C# 16hex字串位元組流的轉換 示例

在工程實踐中,經常會將一些位元組資訊轉換為16進位制字串,以便傳遞和分享,比如加密金鑰資訊。在這裡提供一段轉化示例, 以供交流學習。 將16進位制字串轉化為 位元組流 publi

C# 16hex字串位元組流的轉換 示例

在工程實踐中,經常會將一些位元組資訊轉換為16進位制字串,以便傳遞和分享,比如加密金鑰資訊。在這裡提供一段轉化示例, 以供交流學習。 將16進位制字串轉化為 位元組流 public static byte[] HexStringToBytes(string

Java 十六Hex與byte陣列之間的轉換

一、十六進位制(Hex)與位元組(byte)的概念 十六進位制(Hex):計算機中資料的一種表示方法,它由0-9,A-F組成,字母不區分大小寫。與10進位制的對應關係是:0-9對應0-9;A-F對應10-15。 位元組(byte):   java中一個byte為8

C# 16字串位元組陣列之間的轉換

1.請問c#中如何將十進位制數的字串轉化成十六進位制數的字串 //十進位制轉二進位制 Console.WriteLine("十進位制166的二進位制表示: "+Convert.ToString(166, 2)); //十進位制轉八進位制 Console.WriteLine("十進位制166的八進位

openssl 生成公鑰和私鑰包含16公鑰

1. 生成原始 RSA私鑰檔案 rsa_private_key.pem openssl genrsa -out rsa_private_key.pem 1024 2. 將原始 RSA私鑰轉換為 pkcs8格式,JAVA需要使用的私鑰需要經過 PKCS8 編碼 openssl pkcs8 -top

1016不用函式

import java.util.*; public class b1 {//10進位制轉16進位制,測試成功public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc

java 字串16包含漢字

public static String toChineseHex(String s) { String ss = s; byte[] bt = new byte[0]; tr

2018.10.04 NOIP模擬 K模擬

描述 給定一個K(2<=K<=16)進位制數a,判斷a是否能被K-1整除。 輸入 第一行是一個整數t(1<=t<=50),表示測試點數量。 對於每組資料,第一行一個整數K,表示進

十六轉八 思維

Problem  Description: 給定n個十六進位制正整數,輸出它們對應的八進位制數。 Input: 輸入的第一行為一個正整數n (1<=n<=10)。 接下來n行,每行一個由0~9、大寫字母A~F組成的字串,表示要轉換的十六進位制正整數,每個

c++ 16轉化為10的幾種方法

 第一種方法:      int hex_char_value(char c) { if(c >= '0' && c <= '9') return c - '0'; else if(c >

藍橋杯 基礎練習 十六轉八5超長字串處理

 基礎練習 十六進位制轉八進位制   時間限制:1.0s   記憶體限制:512.0MB 問題描述   給定n個十六進位制正整數,輸出它們對應的八進位制數。輸入格式   輸入的第一行為一個正整數n (1<=n<=10)。   接下來n行,每行一個由

C#16字元和16整數的轉換

(1)獲取TextBox中的內容轉換為16進位制數字string strCanID = CanIDText.Text;uint a = Convert.ToUInt32(strCanID, 16);(2)將整數轉換為16進位制字元int uiBaseAddress = 0x2

將long整型轉為二進位制和16,存於字串

1.將Long整型轉為二進位制 #include<iostream> #include <vector> #include <assert.h> #include

C++將無結束符字串ASCII轉為數字數值的快速方法支援16

通常情況下的字串轉為數字,可以使用C的atoi,或者C++的sstream來轉換,但是這要求待轉換源字串要有\0結束符,如果只想轉換字串中一部分,或者轉換char*中不帶結束符的字串的時候,以上的方式均需要將字元拷貝出來並且給出結束符才能進行下一步轉換,有了拷貝的動作轉換的

C#轉換操作16操作

一、字串和16進位制字串互轉 1.字串轉16進位制字串 /// <summary> /// 字串轉Hex,方法1使用Convert.ToString(byte, 16) /// </summary> /// <param name="s

python常用的十進位制、16字串位元組串之間的轉換長期更新帖

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上,直接上例子 整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0

js byte陣列與16字串互轉對負值填坑

//十六進位制字串轉位元組陣列,跟網上demo一樣 function HexString2Bytes(str) {   var pos = 0;   var len = str.length;   if (len % 2 != 0) { &

十進位制轉為十六C語言

#include <stdlib.h> #include <stdio.h> #include <string.h> /*********十進位制轉為十六進位制函式******** 第一個引數為要被轉換的十進位制, 第二個為轉換完成儲存的十六進位制的位置

其他轉化為10和10轉化為其他均一個函式c++

今天專門抽出來一點時間來弄一下,進位制轉化的問題,不論是其他進位制轉化為10進位制還是10進位制轉化為其他進位制,均使用同一個函式來完成,只需要手動輸入從哪個進位制轉化為哪個進位制。 程式碼如下: #include <iostream> #include <cmat

HDU 2057 - A + B Again16計算

A + B Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 35406