how to convert byte value into int in objective-c

后端 未结 5 1107
感动是毒
感动是毒 2021-01-01 06:24

Please tell me how to convert bytes to NSInteger/int in objective-c in iPhone programming?

相关标签:
5条回答
  • 2021-01-01 06:34
    NSInteger x = 3;
    unsigned char y = x;
    int z = x + y;
    
    0 讨论(0)
  • 2021-01-01 06:39

    If by byte, you mean an unsigned 8 bit value, the following will do.

    uint8_t foo = 3;   // or unsigned char foo...
    NSInteger bar = (NSInteger) foo;
    

    or even

    NSInteger bar = foo;
    
    0 讨论(0)
  • 2021-01-01 06:43

    Use the "=" operator.

    0 讨论(0)
  • 2021-01-01 06:58

    My guess:

    unsigned char data[] = { 0x00, 0x02, 0x45, 0x28 };
    NSInteger intData = *((NSInteger *)data);
    
    NSLog(@"data:%d", intData); // data:675611136
    NSLog(@"data:%08x", intData); // data:28450200
    

    So, beware of byte-order.

    0 讨论(0)
  • 2021-01-01 07:00

    What do you mean by "Bytes"? If you want convert single byte representing integer value to int (or NSInteger) type, just use "=":

    Byte b = 123;
    NSInteger x;
    x = b;
    

    as Byte (the same as unsigned char - 1 byte unsigned integer) and NSInteger (the same as int - 4 bytes signed integer) are both of simple integer types and can be converted automatically. Your should read more about "c data types" and "conversion rules". for example http://www.exforsys.com/tutorials/c-language/c-programming-language-data-types.html

    If you want to convert several bytes storing some value to int, then convertion depends on structure of these data: how many bytes per value, signed or unsigned.

    0 讨论(0)
提交回复
热议问题