循环移位c

发布于 2024-09-03 18:35:26 字数 231 浏览 3 评论 0原文

我必须将 int 向右移动一位并返回它

在 Java 中我可以只返回 n >>> 1;

这在C语言中可能吗?

我们得到的方法如下

// Return n after a right circular 1-bit shift
unsigned int right_circular_shift_1(unsigned int n) {

I have to shift the int one place to the right and return it

In Java i can just return n >> 1;

Is this possible in C?

The method we were given is as follows

// Return n after a right circular 1-bit shift
unsigned int right_circular_shift_1(unsigned int n) {

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

平安喜乐 2024-09-10 18:35:26

C 没有循环移位,所以我猜练习是为了实现它。对于左循环移位,执行此操作的方法是:

- get the current leftmost bit  and save it
- shift the number leftwards by one
- or the saved bit in at the rightmost bit position

对于右循环移位:

- get the current rightmost bit  and save it
- shift the number rightwards by one
- or the saved bit in at the leftmost bit position

C does not have a circular shift, so I guess the exercise is to implement it. The way to do this for a left circular shift is to:

- get the current leftmost bit  and save it
- shift the number leftwards by one
- or the saved bit in at the rightmost bit position

For a right circular shift:

- get the current rightmost bit  and save it
- shift the number rightwards by one
- or the saved bit in at the leftmost bit position
↙温凉少女 2024-09-10 18:35:26

你没试过吗?

n >> 1

这将在 C(和其他基于 C 的语言)中工作,就像在 Java 中一样(但不是循环的)。

Have you not tried it?

n >> 1

This will work in C (and other C-based languages) as it does in Java (not circular, though).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文