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;
}
演示
相關文章
- 位元組流轉16進位制字串字串
- C# 解析16進位制字串。將16進位制字串轉換成明文字串C#字串
- python以16進位制列印位元組陣列Python陣列
- Java 16進位制字串 取反Java字串
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- [20190819]如何快速轉換16進位制串到字串.txt字串
- oracle_16進位制與10進位制轉換小示例Oracle
- 資料轉換-16進位制字元字元
- 負數補碼(16進位制轉10進位制的負數)
- 教你如何進行數倉字串、二進位制、十六進位制互轉字串
- c++ 16進位制資料轉doubleC++
- PHP負數轉16進位制再轉到10進位制的正確姿勢PHP
- Qt進位制轉換(十進位制轉十六進位制)QT
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- JavaScript RGB轉換成16進位制顏色JavaScript
- 彙編實現10進位制轉16進位制並以ASCII碼輸出ASCII
- 為什麼分庫分表使用2的N次方 一個位元組用兩位16進位制
- C++資料格式化5 - uint轉換成十六進位制字串&二進位制的data列印成十六進位制字串C++UI字串
- n進位制轉十進位制
- 十進位制轉十六進位制
- stoi字串轉十進位制數越界問題字串
- JAVA 學習(一):16進位制字串自增的實現Java字串
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- Java中8進位制和16進位制的表示方法Java
- 二進位制、十進位制與十六進位制相互轉化
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 二進位制轉十進位制快速方法
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- printf()將10進位制數安照輸出16進位制,8進位制輸出
- C printf按8進位制、10進位制、16進位制輸出以及高位補0
- C語言中printf打出2進位制與16進位制數C語言
- 進位制轉換
- JavaScript十進位制轉換為二進位制JavaScript
- 十進位制轉二進位制推導(草稿)