C でビット操作を使用して float を切り捨てようとしています。最初に、float を unsigned int に変換します。私の戦略は、指数を取得し、その後ビットをゼロにすることだと思いますが、それをコーディングする方法がわかりません。これは私がこれまでに持っているものです:
float roundDown(float f);
unsigned int notRounded = *(unsigned int *)&f;
unsigned int copy = notRounded;
int exponent = (copy >> 23) & 0xff;
int fractional = 127 + 23 - exponent;
if(fractional > 0){
//not sure how to zero out the bits.
//Also don't know how to deal with the signed part.