为什么换算操作不是0?

时间:2017-04-09 10:27:47

标签: c

我试图实现简单的C语言代码,因为我是初学者 我是第一次使用OR操作在缓冲区8位大小上然后应用右移操作。
我发现了一些奇怪的事情,有时候我会加1而不是0&有些情况正确加0。

我的代码:

char buffer[0]={0x7e};  
int bitsetcounter; 
int bitCounter; 
int s=1;

int main () {
    if (s=1) {
        buffer[0]=buffer[0]|0x80;
        bitsetcounter++;
        bitCounter++;
    }

    buffer[0] >>=1;
    printf("the buffer is %x",buffer[0]& 0xff);
}

输出>>缓冲区是ff。 这就是为什么输出那样的?如果我通过添加0值,我应该有7F而不是ff?

1 个答案:

答案 0 :(得分:1)

替换

@Endpoint
public class MailEndpoint {
    private static final String NAMESPACE_URI = "I tried myhost (address location in wsdl) and other-company"

    @PayloadRoot(namespace = NAMESPACE_URI, localPart = "sendMessage")
    @ResponsePayload
    public SyncSendMessageResponse sendMessage(@RequestPayload SyncSendMessageRequest request) {
        SyncSendMessageResponse response = new SyncSendMessageResponse();
        ResponseData responseData = new ResponseData();
        responseData.setResult("sync");
        response.setResponseData(responseData);
        return response;
}

使用

char buffer[0]={0x7e};

但仍然>>运营商是平台相关的