小编And*_*w T的帖子

不推荐使用从字符串文字到char*的转换

我在代码中不断收到错误"从字符串文字转换为char*".代码的目的是使用指针指针为一个字分配string1和string2,然后将其打印出来.我怎样才能解决这个问题?

这是我的代码:

#include <iostream>
using namespace std;

struct WORDBLOCK
{
    char* string1;
    char* string2;
};

void f3()
{
    WORDBLOCK word;

    word.string1 = "Test1";
    word.string2 = "Test2";


    char *test1 = word.string1;
    char *test2 = word.string2;

    char** teststrings;

    teststrings = &test1;
    *teststrings = test2;

    cout << "The first string is: "
         << teststrings
         << " and your second string is: "
         << *teststrings
         << endl;  
}
Run Code Online (Sandbox Code Playgroud)

c++ string char

24
推荐指数
1
解决办法
3万
查看次数

使用Bitwise将Int转换为Float/Float到Int

我想知道你是否可以帮助解释将整数转换为float或float转换为整数的过程.对于我的课程,我们只使用按位运算符来完成此操作,但我认为从类型到类型的强制理解将在这个阶段帮助我更多.

根据我目前所知,对于int要浮动,你必须将整数转换为二进制,通过查找有效数,指数和分数来规范化整数的值,然后从那里输出浮点值?

至于float到int,你必须将值分成有效数,指数和分数,然后反转上面的指令得到一个int值?

我试着按照这个问题的说明:在C中将float转换为int(按位)

但我真的不能理解它.

另外,有人可以解释为什么在将int转换为float时大于23位的值需要舍入?

提前致谢

floating-point assembly arm bit-manipulation ieee-754

10
推荐指数
1
解决办法
1万
查看次数

两个补充表格所需的最小比特数

在我的中期,有一个问题说:

给定十进制值,在Two的补语表单中表示每个数字所需的最小位数是多少?

值为:-26,-1,10,-15,-4.

我没有得到任何正确的问题,解决方案令人困惑.

我真正理解的唯一部分是找到值所在的范围.例如,-15将在[-2 ^ 5,2 ^ 5]的范围内,并且-4将在[-2 ^ 2,2 ^ 2]的范围内.从这里需要哪些步骤才能找到需要多少位?

我试图找到一些模式来解决它,但它只适用于前两种情况.这是我的尝试:

  1. 首先,我找到了范围.-2 ^ 6 <-26 <2 ^ 6

  2. 然后我发现2 ^ 6 = 32的值.

  3. 然后我找到了"最近"界限与值之间的差异.

-26 - (-32)= 6

同样,这偶然适用于前两个值,现在我难以找到以二进制补码形式表示的整数所需的位数与实际整数之间的实际关系.

提前致谢!

c++ assembly bit twos-complement

4
推荐指数
1
解决办法
3978
查看次数

十进制到IEEE单精度浮点

我有兴趣学习如何使用按位运算符将整数值转换为IEEE单精度浮点格式.但是,我很困惑在计算指数时可以做些什么来知道剩下多少逻辑位移.

给定一个int,比如15,我们有:

二进制:1111

- > 1.111 x 2 ^ 3 =>在第一位后面放置一个小数点后,我们发现'e'值为3.

E = Exp - 偏差因此,Exp = 130 = 10000010

并且有效数将是:111000000000000000000000

但是,我知道'e'值将是3,因为我能够看到在第一位之后放置小数后有三位.作为一般情况,是否有更通用的代码编码方式?

同样,这是针对int到float的转换,假设整数是非负的,非零,并且不大于尾数允许的最大空间.

此外,有人可以解释为什么大于23位的值需要舍入?提前致谢!

c++ floating-point int assembly single-precision

1
推荐指数
1
解决办法
4411
查看次数