C语言中负整数的逻辑右移? [英] Logical Right Shift on negative integers in C?

查看:45
本文介绍了C语言中负整数的逻辑右移?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在C中对负数进行逻辑右移?基本上,我正在寻找Java中>>> 的C等效项

How does one go about doing a logical right shift of negative numbers in C? Basically I am looking for the C equivalent of >>> in java

int one = -16711936 ;
        //int two = -16711936 ;
        //int three = -1;
        int r, g, b;
        System.out.println(Integer.toBinaryString(one));
         r = one << 8;
         r >>>= 24;

         g = one << 16;
         g >>>= 24;  //this always ends up being -1 in C, instead of 255

         b = one << 24;
         b >>>= 24;

推荐答案

在转换前将值转换为(无符号整数).

这篇关于C语言中负整数的逻辑右移?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆