使用MIPS屏蔽整数(快速简便)

时间:2017-01-30 02:16:01

标签: binary mips masking

我想输入一个整数,并用二进制和十六进制表示。然后我想将第12,13,14和15位移到$ a0的最低有效位,并将输出表示为二进制和十六进制。这是我的计划:

$creditCards = [];

\Stripe\Stripe::setApiKey(env('STRIPE_SECRET_KEY'));
$stripeCustomer = \Stripe\Customer::retrieve($booking->customer->stripe_customer_id);

$defaultSource = $stripeCustomer->default_source;

foreach($stripeCustomer->sources->all()->data as $paySource) {
    switch($paySource['object']) {
        case 'card':
            $creditCards[$paySource->id] = $paySource->brand . ' ending in ' . $paySource->last4 . ' (Exp. ' . $paySource->exp_month . '/' . $paySource->exp_year . ')';
            break;
        default:
            throw new \Exception("Unexpected Stripe payment source type: " . $paySource['object']);
    }
}

例如,对于整数1006460,输入和十六进制输出完美地工作,但二进制输出在末尾有额外的5。我得到的错误是:

这是二进制输出:0x000000055

什么可能导致这个额外的5位于输出的末尾?

1 个答案:

答案 0 :(得分:0)

我有多傻。我应该删除

li $v0, 1   
add $a0, $0, $s0
syscall

来自我的代码。