16進位制字串轉位元組
16進位制字串轉位元組
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
void hex_str_to_byte(char *in, int len, unsigned char *out)
{
char *str = (char *)malloc(len);
memset(str, 0, len);
memcpy(str, in, len);
for (int i = 0; i < len; i += 2)
{
//小寫轉大寫
if (str[i] >= 'a' && str[i] <= 'f')
str[i] = str[i] - 0x20;
if (str[i + 1] >= 'a' && str[i] <= 'f')
str[i + 1] = str[i + 1] - 0x20;
//處理第前4位
if (str[i] >= 'A' && str[i] <= 'F')
out[i / 2] = (str[i] - 'A' + 10) << 4;
else
out[i / 2] = (str[i] & ~0x30) << 4;
//處理後4位, 並組合起來
if (str[i + 1] >= 'A' && str[i + 1] <= 'F')
out[i / 2] |= (str[i + 1] - 'A' + 10);
else
out[i / 2] |= (str[i + 1] & ~0x30);
}
free(str);
}
int main()
{
char *str = "FF32333435363738393a3b3c3d3e3f40";
unsigned char temp[16] = {0};
hex_str_to_byte(str, strlen("ff32333435363738393a3b3c3d3e3f40"), temp);
for (int i = 0; i < 16; i++)
{
printf("%02x ", temp[i]);
}
printf("\n");
return 0;
}
演示
相關文章
- C# 解析16進位制字串。將16進位制字串轉換成明文字串C#字串
- 16進位制資料發生高位位元組和地位位元組互換
- python以16進位制列印位元組陣列Python陣列
- 字串和16進位制字串的相互轉化字串
- 使用Apache的Hex類實現Hex(16進位制字串和)和位元組陣列的互轉Apache字串陣列
- 位,位元組,二進位制,十六進位制間的關係
- [MSSQL]字串轉成16進位制函式SQL字串函式
- 位,位元組,16進位制關係,以防忘記(給自己看的)
- Java 16進位制字串 取反Java字串
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- shell 中轉換16進位制10進位制
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- 10進位制和16進位制互轉的例子
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- 2進位制_8進位制_16進位制之間快速轉換的技巧.txt
- 2/8/16轉10進位制
- oracle_16進位制與10進位制轉換小示例Oracle
- sql實現10進位制16進位制轉換函式SQL函式
- 3416:【例72.1】 二進位制轉化為十進位制
- Qt進位制轉換(十進位制轉十六進位制)QT
- 負數補碼(16進位制轉10進位制的負數)
- 教你如何進行數倉字串、二進位制、十六進位制互轉字串
- 為什麼分庫分表使用2的N次方 一個位元組用兩位16進位制
- 對2個hex(16進位制)字串進行異或操作字串
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制字串相加字串
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- n進位制轉十進位制
- 十進位制轉十六進位制
- PHP負數轉16進位制再轉到10進位制的正確姿勢PHP
- 1161:轉進位制(C C++)C++
- c++ 16進位制資料轉doubleC++
- UIColor 轉成 Hex 16進位制色值UI
- 進位制轉化 10-->(2-16)
- 十進位制轉化為2/8/16
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 十六進位制數轉十進位制