Byte转INT型

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define OLDTEST 0

typedef unsigned char INT8U; /* 无符号8位整型 */
typedef INT8U* PINT8U; /* 无符号8位整型指针 */

typedef unsigned short INT16U; /* 无符号16位整型 */

typedef unsigned int INT32U; /* 无符号32位整型 */
typedef unsigned long long INT64U; /* 无符号64位整型 */

static void INT8U_ConvertTo_Other(INT8U* pu8Data, INT8U u8BigEndian, INT8U* pu8Dst, INT8U u8Len)
{
    INT8U u8Index = 0;
    if(1 == u8BigEndian)
    {
        for(u8Index=0; u8Index<u8Len; u8Index++)
        {
            *pu8Dst++ = pu8Data[u8Index];
        }
    }
    else
    {
        for(u8Index=u8Len; u8Index > 0; u8Index--)
        {
            *pu8Dst++ = pu8Data[u8Index-1];
        }
    }
}

int main(void)
{
    INT8U u8Arr[8] = {0x12,0x34,0x56,0x78,0x87,0x65,0x43,0x21};
    INT16U u16Data1 = 0; // 0x1234;
    INT32U u32Data1 = 0; // 0x1234;
    UINT64 u64Data1 = 0; // 0x1234567890;

INT8U_ConvertTo_Other(u8Arr, 1, (INT8U*)&u16Data1, sizeof(u16Data1));
    printf("%x\n", u16Data1);
    INT8U_ConvertTo_Other(u8Arr, 0, (INT8U*)&u16Data1, sizeof(u16Data1));
    printf("%x\n", u16Data1);

INT8U_ConvertTo_Other(u8Arr, 1, (INT8U*)&u32Data1, sizeof(u32Data1));
    printf("%x\n", u32Data1);
    INT8U_ConvertTo_Other(u8Arr, 0, (INT8U*)&u32Data1, sizeof(u32Data1));
    printf("%x\n", u32Data1);

INT8U_ConvertTo_Other(u8Arr, 1, (INT8U*)&u64Data1, sizeof(u64Data1));
    printf("%x\n", u64Data1);
    INT8U_ConvertTo_Other(u8Arr, 0, (INT8U*)&u64Data1, sizeof(u64Data1));
    printf("%x\n", u64Data1);

return 0;
}

时间: 2024-10-26 09:03:48

Byte转INT型的相关文章

java整型byte,short,int,long取值范围大小

 byte 1个字节 short 2个字节 int 4个字节long 8 个字节 varchar 可变长度的非Unicode数据,最长为8000个字符nvarchar 可变长度Unicode数据,最长为4000个字符char 固定长度的非Unicode数据,最长为8000个字符nchar 固定长度的Unicode数据,最长为4000个字符 非Unicode字符串的数据类型 包括char ,varchar,text; Unicode字符串的数据类型 包括nchar ,nvarchar,ntext;

大数据Java基础(一)int型与byte型数组的转换

为了在接下来的篇章中讲解用java实现文件的归档和解归档,需要先了解一下Java中int型与byte型数组之间的相互转换. 首先,我们先来看看int型转换成byte型数组. 我们知道,Java中,一个int型占用4个字节,一个byte型占用1个字节,所以,对于一个int型,我们需要一个长度为4的byte型数组来对其进行存储. 31位--24位 23位--16位 15位--8位 7位--0位 一个int型的4个字节如上图所示,假设用来存储的字节数组为bytes[],那么,我们可以用bytes[0]

byte和int的浅解

1.byte范围为什么是(-128~127)? --byte是8位 --这里定义2种8位展现形式:1,符号形式(第一眼看符号位,判断正负,然后计算剩下7位的数值).2,存储形式(内存中都是补码存储) --想要知道一个数在内存中如何存储?真值 >> 符号形式 >> 补码 >> 存储形式 --示例1: +8(真值) +8(符号形式):0000 1000,//真值"+8",因为是"+",所以将第一位定义为0,因为值是"8&qu

什么样的数据算是byte类型,int类型,float类型,double类型,long类型

byte类型,就是字符类型.这类数据是字符组成的 INT 类型,为整型数字,不同语言定义的范围不同 FLOAT,为数字浮点型,其小数点后面可以跟N个数字 DOUBLE,为双精度数字类型,其小数点后只能有两个数字 LONG,为长整型其范围要比INT类型范围广 什么样的数据算是byte类型,int类型,float类型,double类型,long类型

MVC中Model 的Key值不建议用非int型

一次在开发中,key的值用了 byte型,结果插入第一条正常,第二条开始就出错,原因是用byte类型无法实现自动增加1,所以为了方便,建议使用 int型. public virtual byte bkAutoID { get; set; }

java中byte与int互转

package com.yl.common.utils; /** * byte转换工具 * * @author huangzp * @date 2015-6-09 */ public class ByteUtil { /** * 将iSource转为长度为iArrayLen的byte数组,字节数组的低位是整型的低字节位 * @param iSource * @param iArrayLen * @return */ public static byte[] toByteArray(int iSo

write(byte[] b, int off, int len)

write(byte[] b, int off, int len)就是将数组 b 中的 len 个字节按顺序写入输出流. 所以如果 b 为 null,则抛出 NullPointerException. 如果 off 为负,或 len 为负,又或者 off+len 大于数组 b 的长度,则抛出 IndexOutOfBoundsException. 如果 len 为零,则不写入字节. 否则,首先写入字节 b[off],然后写入字节 b[off+1],依此类推:最后一个写入字节是 b[off+len-

Java - byte[]与int的互相转换

public static int byte2Int(byte[] b, int begin, int len) { int sum = 0; int end = begin + len; int n; for (int i = begin; i < end; i++) { n = ((int) b[i]) & 0xff; n <<= (--len) * 8; sum = n + sum; } return sum; } public static byte[] int2byte

把int型非负数转换为英文

数字转换为英文 输入为int型非负数,最大值为2^31 - 1 = 2 147 483 647 输出为String英文,最大输出为Two Billion One Hundred Forty Seven Million Four Hundred Eighty Three Thousand Six Hundred Forty Seven 输出要求每个单词首字母大写,之间用空格隔开,不需要用“and”做连词 例如: 123 -> "One Hundred Twenty Three" 1