某某茶叶有限公司欢迎您!
金沙棋牌在线 > 操作系统 > iOS NSData二进制流数据转成整型

iOS NSData二进制流数据转成整型

时间:2020-01-25 02:01

一般人会考虑用位运算,程序代码如下:

- (uint32_t)intFromData:(NSData *)data useBig:(BOOL)useBig

问:计算机内部是二进制形式,各种类型的数据是怎么表示成二进制的呢?

对于二进制表示的float类型的2.5,其在内存中的表示为01000000  00100000  00000000  00000000,如果我们想打印出它在内存中是如何表示的,那么我们可以用1进行移位,与每个比特进行与运算,还是看看代码吧:
对于输入参数,在visual studio下可以点击项目->属性->配置属性->调试->命令参数进行输入,在visual c++6.0可以点击工程->设置->调试->程序变量里输入。输入2.5打印看看,其结果与我们预期相同。

#include<stdio.h>

{

图片 1

#include <cstdlib> 
#include <iostream> 
using namespace std;

void printBinary(const unsigned char val)
{
    for (int i = 7;i>=0;i--)
        if(val&(1<<i))
            cout<<"1";
        else
            cout<<"0";
}

int main(int argc,char** argv)
{
    if (argc!=2)
    {
        cout<<"Provide a number"<<endl;
        exit(0);
    }
    float d = (float)atof(argv[1]);
    unsigned char* cp = (unsigned char*)(&d);
    for (int i = 0; i<sizeof(float); i++)
    {
        printBinary(cp[sizeof(float)-1-i]);
        cout<<" ";
    }
    return 0;
}

void Print(int n)
{
if(n==1||n==0)
{
   printf("%d",n);
   return;
}
Print(n>>1);
printf("%d",n%2);
}

uint32_t result = -1;

首先,基本数据类型如何表达成二进制: