我有以下代码
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <stdint.h>
using namespace std;
int main(){
int x;
cin>>x;
uint32_t Ex;
Ex=(x<<1)>>24;
cout<<Ex<<endl;
return 0;
}
但它为x的任何值提供0?
我的任务如下:
Computation of the biased exponent Ex of a binary32 datum x.
答案 0 :(得分:2)
对于'x的任何值',你得到零并没有那么多,但是对于x的任何正值小于0x01000000(16777216)你得零。
这对解释“binary32数据的偏置指数”没有多大帮助。这听起来像是32位浮点(IEEE)数的指数。您可能不得不担心表示的字节顺序等等。
答案 1 :(得分:1)
你得到零是因为你正在向24位移位,这会使你的有效位从末端移开并用左边的零替换它们。