如何将四个一字节的数转换为一个四字节数
生活随笔
收集整理的這篇文章主要介紹了
如何将四个一字节的数转换为一个四字节数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????? 最近在研究圖像顯示這塊,想在/dev/graphics/fb0上顯示圖像,在研究時需要一個圖片的十六進制數值,找了好久,找了一個軟件可以實現該功能。
??? Img2Lcd.exe 這個軟件可以實現,一張圖片轉換后的結果如下:
const unsigned char gImage_1233[128640] = { /* 0X00,0X20,0XF0,0X00,0X86,0X00,0X00,0XE4, */ 0X5D,0X31,0X12,0X00,0X5D,0X31,0X12,0X00,0X5D,0X31,0X12,0X00,0X5D,0X31,0X0F,0X00, 0X5E,0X31,0X10,0X00,0X5D,0X2E,0X12,0X00,0X5D,0X2F,0X11,0X00,0X5E,0X31,0X0F,0X00, 0X62,0X33,0X14,0X00,0X64,0X36,0X16,0X00,0X67,0X39,0X17,0X00,0XA3,0X42,0X02,0X00, 0XA4,0X42,0X02,0X00,0XA4,0X42,0X02,0X00,0XA4,0X41,0X03,0X00,0XA7,0X42,0X03,0X00, 0XA3,0X42,0X06,0X00,0XA5,0X44,0X02,0X00,0XAB,0X41,0X04,0X00,0XA7,0X44,0X03,0X00, 。。。。};看到了嗎?是char類型的,可是我要的是int類型的,可惜這個軟件沒有這個功能,如何是好呢。于是自己寫了個簡單的文件操作代碼,在這個轉換基礎之上轉換在做處理,代碼如下:
1 /************************************************************************* 2 > File Name: main.c 3 > Author: winfu 4 > Mail: wenfuandyou@163.com 5 > Created Time: Thu 07 Jul 2016 10:08:36 AM CST 6 ************************************************************************/ 7 #include<stdio.h> 8 #include<string.h> 9 #include <sys/types.h> 10 #include <sys/stat.h> 11 #include <fcntl.h> 12 13 int main() 14 { 15 int fd1 = open("./file.txt",O_RDWR); 16 int fd2 = open("./file_bak.txt",O_CREAT|O_WRONLY,0666); 17 int num; 18 if(fd1 < 0 || fd2 < 0) 19 { 20 perror("open"); 21 return -1; 22 } 23 ssize_t res = 1; 24 char buf4[4] = {0}; 25 char buf2[2] = {0}; 26 int i = 0; 27 char c = ','; 28 char cn = '\n'; 29 printf("------------\n"); 30 do{ 31 i++; 32 res = read(fd1,buf4,sizeof(buf4)); 33 printf("%s",buf4); 34 write(fd2,buf4,sizeof(buf4)); 35 36 lseek(fd1, 3,SEEK_CUR); 37 res = read(fd1,buf2,sizeof(buf2)); 38 printf("%s",buf2); 39 write(fd2,buf2,sizeof(buf2)); 40 41 lseek(fd1, 3,SEEK_CUR); 42 res = read(fd1,buf2,sizeof(buf2)); 43 printf("%s",buf2); 44 write(fd2,buf2,sizeof(buf2)); 45 46 lseek(fd1, 3,SEEK_CUR); 47 res = read(fd1,buf2,sizeof(buf2)); 48 printf("%s\t",buf2); 49 write(fd2,buf2,sizeof(buf2)); 50 write(fd2,&c,1); 51 lseek(fd1, 1,SEEK_CUR); 52 num++; 53 if(i==4) 54 { 55 i = 0; 56 printf("\n"); 57 write(fd2,&cn,1); 58 lseek(fd1, 1,SEEK_CUR); 59 } 60 }while(res); 61 printf("------------\n"); 62 printf("num = %d\n",num); 63 close(fd1); 64 close(fd2); 65 return 0; 66 }將轉Img2Lcd.exe轉換好的文件去掉頭尾 存放到file.txt文檔中,將file文檔放在該程序的路徑下,最后生成file_bak.txt,該文件存放的是轉換后的數據:
0X5D311200,0X5D311200,0X5D311200,0X5D310F00, 0X5E311000,0X5D2E1200,0X5D2F1100,0X5E310F00, 0X62331400,0X64361600,0X67391700,0XA3420200, 0XA4420200,0XA4420200,0XA4410300,0XA7420300, 0XA3420600,0XA5440200,0XAB410400,0XA7440300, 0XA9440300,0XAC420500,0XA9440300,0XA8440300, 0XA9450400,0XA3460400,0XAC460500,0XA9450900 ….這個數據正好是我想要的4字節。
轉載于:https://www.cnblogs.com/winfu/p/5650829.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的如何将四个一字节的数转换为一个四字节数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android中asset和raw的区别
- 下一篇: 关于Oracle中in,exists 与