int x = 2;
x = rotateInt('L', x, 1); // should return 4
x = rotateInt('R', x, 3); // should return 64
Run Code Online (Sandbox Code Playgroud)
这是代码,有人可以检查它,让我知道错误是什么?
编译成功,但它说Segmentation Fault我执行它.
int rotateInt(char direction, unsigned int x, int y)
{
int i;
for(i = 0; i < y; i++)
{
if(direction == 'R')
{
if((x & 1) == 1)
{
x = x >> 1;
x = (x ^ 128);
}
else
x = x >> 1;
}
else if(direction == 'L')
{
if((x …Run Code Online (Sandbox Code Playgroud) 数据类型为char,模式如下:
源字节:[0] [1] [2] [3] [4] [5] [6] [7]
目的地:[6] [7] [4] [5] [2] [3] [0] [1]
例如,如果我将char,29传递给此函数,它将执行交换并返回一个char类型值,即116.
我怎样才能进行交换?
谢谢.
========================
只是想知道我是否可以这样做?
unsigned char mask = 128;
char num = 0, value1 = 29;
int i, a;
for(i = 0; i < 8; i++) {
if (i == 0 || i == 1 || i == 6 || i == 7)
a = 6;
else
a = 2;
if(i < 4)
num = ((value1 & mask) >> a);
else
num …Run Code Online (Sandbox Code Playgroud) 将整数 2 传递给此函数,然后返回一个整数 4
x = 2;
x = rotateInt('L', x, 1);
Run Code Online (Sandbox Code Playgroud)
(左移1位)
示例:00000010 -> 向左旋转 1 -> 00000100
但如果我通过这个:
x = rotateInt('R', x, 3);
Run Code Online (Sandbox Code Playgroud)
它将返回 64, 01000000
这是代码,有人可以纠正错误...谢谢
int rotateInt(char direction, unsigned int x, int y)
{
unsigned int mask = 0;
int num = 0, result = 0;
int i;
for (i = 0; i < y; i++)
{
if (direction == 'R')
{
if ((x & 1) == 1)
x = (x ^ 129);
else
x = …Run Code Online (Sandbox Code Playgroud) 我编写了一个TCP套接字客户端程序,允许用户输入IP,端口和消息作为参数.
它像是:
./a.out 127.0.0.1 555 test message
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何将"test"(argv[3])和"message"(argv[4])等组合成一个char *message?