View source code
Display the source code in core/bitop.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function core.bitop.ror
Bitwise rotate value
left (rol
) or right (ror
) by
count
bit positions.
T ror(T)
(
const T value,
const uint count
) pure
if (__traits(isIntegral, T) && __traits(isUnsigned, T));
T ror(uint count, T)
(
const T value
) pure
if (__traits(isIntegral, T) && __traits(isUnsigned, T));
Example
ubyte a = 0b11110000U;
ulong b = ~1UL;
writeln(rol(a, 1)); // 0b11100001
writeln(ror(a, 1)); // 0b01111000
writeln(rol(a, 3)); // 0b10000111
writeln(ror(a, 3)); // 0b00011110
writeln(rol(a, 0)); // a
writeln(ror(a, 0)); // a
writeln(rol(b, 63)); // ~(1UL << 63)
writeln(ror(b, 63)); // ~2UL
writeln(rol!3(a)); // 0b10000111
writeln(ror!3(a)); // 0b00011110
enum c = rol(uint(1), 0);
enum d = ror(uint(1), 0);
writeln(c); // uint(1)
writeln(d); // uint(1)
Authors
Don Clugston, Sean Kelly, Walter Bright, Alex Rønne Petersen, Thomas Stuart Bockman
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.