// int2byte.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <Windows.h>/*
#define MAKEWORD(a, b)  ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))
#define MAKELONG(a, b)  ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16))
#define LOWORD(l)       ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l)       ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
#define LOBYTE(w)       ((BYTE)(((DWORD_PTR)(w)) & 0xff))
#define HIBYTE(w)       ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))
*/// ==========================================================
//   Big Endian / Small Endian utility functions
// ==========================================================
BOOL IsSmallEndian()
{DWORD wd = 0x22; if( *((BYTE *)&wd) == 0x22 )  // Small Endianreturn TRUE;elsereturn FALSE;
}void SwapShort(WORD *sp) {BYTE *cp = (BYTE *)sp, t = cp[0]; cp[0] = cp[1]; cp[1] = t;
}void SwapLong(DWORD *lp) {BYTE *cp = (BYTE *)lp, t = cp[0]; cp[0] = cp[3]; cp[3] = t;t = cp[1]; cp[1] = cp[2]; cp[2] = t;
}// int 2 byte
BYTE *Int2Byte(int nVal)
{BYTE *pByte = new BYTE[4];for (int i = 0; i<4;i++){pByte[i] = (BYTE)(nVal >> 8*(3-i) & 0xff);}return pByte;
}// byte 2 int
int Byte2Int(BYTE *pb)
{// assume the length of pb is 4int nValue=0;for(int i=0;i < 4; i++){nValue += ( pb[i] & 0xFF)<<(8*(3-i));}return nValue;
}int _tmain(int argc, _TCHAR* argv[])
{//PC, 小端字节//BYTE *byte = Int2Byte(0x12345678);printf("byte[0]=0x%xh,byte[1]=0x%xh,byte[2]=0x%xh, byte[3]=0x%xh\n", byte[0], byte[1], byte[2],byte[3]);int nVal = Byte2Int(byte);printf("nVal=0x%xh\n\n",nVal);//// 小端字节应该是得到 0xefcdab89, 大端得到0x89abcdefWORD wLow, wHigh;DWORD dwData;BYTE b[4] = {0x89, 0xab, 0xcd, 0xef};DWORD dwVal = 0xefcdab89;// DWORD分解成BYTE数组WORD lo = LOWORD(dwVal),hi = HIWORD(dwVal);printf("lo=0x%xh,hi=0x%xh\n", lo, hi);//BYTE数组组合成DWORDwLow = MAKEWORD(b[0],b[1]);wHigh = MAKEWORD(b[2], b[3]);dwData = MAKELONG(wLow, wHigh);printf("wLow=0x%xh,wHigh=0x%xh,dwData=0x%xh\n", wLow, wHigh, dwData);getchar();return 0;
}

整型变量(int)与字节数组(byte[])的相互转换相关推荐

  1. 字节数组byte[]和整型,浮点型数据的转换——Java代码

    近期在写C++ socket和java socket之间的通信程序,涉及到整数浮点数的传输.须要从字节数组还原数据,查了一些资料.总结例如以下 1.       整数和浮点数的机器表示 在机器内部.不 ...

  2. Java字节数组byte b[]与byte[] b

    Java中的字节数组 Java字节数组仅用于存储字节数据类型值.字节数组中元素的默认值为0. 通过以下Java字节数组示例,您可以学习 如何声明Java字节数组? 如何为Java字节数组分配值? 如何 ...

  3. c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换

    字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) {MemoryStream ms = new ...

  4. C#中字节数组(byte[])和字符串相互转换

    转换过程主要使用到System.Text.Encoding命名空间下的类 1. 字符串转换成字节数组byte[]: string str = "This is test string&quo ...

  5. C#字节数组(byte[])和字符串相互转换

    转换过程主要使用到System.Text.Encoding命名空间下的类 1. 字符串转换成字节数组byte[]: string str = "This is test string&quo ...

  6. 7.Solidity-固定长度字节数组之间的相互转换

    //固定长度字节数组之间的相互转换pragma solidity ^0.4.0;contract changeBytes{bytes9 name = 0xe99988e8af97e5ae9d;func ...

  7. Java 字节数组(byte[])和整型(int)的相互转换

    文章目录 前言 一.int 转换为 byte[] 二.测试代码 三.测试 四.byte[] 转换为 int 总结 前言 恰巧碰到了字节数组和整型的转换问题,特在此总结一下.将 int 按照小端法映射到 ...

  8. C# 中字符串string和字节数组byte[]的转换,16 进制字符串转 int的方法

    string和byte[]互转 string转byte[] byte[] byteArray = System.Text.Encoding.Default.GetBytes(str); byte[] ...

  9. java从数据库读取zip文件的字节数组byte[]直接解压

    直接上代码 /*** * @param destDir* 存储解压文件的路径* @param fileBytes* 文件字节数组* @throws FileNotFoundException* @th ...

最新文章

  1. 2018 AI产业投融资分析:热钱涌向何处,谁的“寒冬”将至?
  2. 单进程gevent版-TCP服务器(python 版)
  3. 快到起飞 | PP-LCNet在CPU上让模型起飞,精度提升且比MobileNetV3+快3倍
  4. Centos yum 命令行 安装KDE Desktop
  5. java中的各种集合排序
  6. 初学者:关于html中的text-align文本居中属性详解
  7. 磁盘管理、进程管理、文件系统、软硬链接详细文档
  8. 网络硬件常识:光模块
  9. 802.11 a/b/g/n的理解
  10. Java最牛教材!阿里技术官整合的四大主流中间件笔记
  11. Laya-关于预设入门
  12. 计算机主板分解,主板拆解与芯片赏析
  13. 我的生活(小兵,班长,连长....大将)
  14. 1.用户界面原理和界面库编程模型
  15. [MySQL] 在线 DDL 工具 gh-ost 原理简介
  16. 计算机系统设置图标异常,桌面图标大小出现异常win7如何更改电脑桌面的分辨率...
  17. 最后一篇:关于治疗和健康
  18. 佳能9100cdn故障_佳能打印机错误代码
  19. 20972多媒体操作系统
  20. [ 应急响应 ]服务器(电脑)受到攻击该如何处理?(一)

热门文章

  1. javascript数组中数字和非数字下标的区别
  2. a标签去掉下划线_html中a标签的一些用法
  3. struts2中s:select标签在freemarker中的使用
  4. python双等号怎么输入_python中的星号‘*’和双星号‘**’的解说
  5. Facebook的GBDT+LR模型python代码实现
  6. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
  7. python3基础知识_python3基础知识梳理
  8. python编程8g的内存够么_详解解决Python memory error的问题(四种解决方案)
  9. zookeeper集群部署(分布式)
  10. swift3.0 post Json解析