tkcomcom1is 2014-06-21 15:38:00

[C] アとイ? このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

自前のatoi関数。一応動くけどさ……。

※追記:16進数のatoiですが、先頭の"0x"を省略したもの(例えば"A68D")を引数に渡しています。
なお、A~Fは大文字で渡す決まりになっていますが、実際のところかなり適当で、小文字にしたもの(例えば"a68d")を渡しているところもちらほら……。

(6/22 追記)1ヶ所ミスがあったので、訂正しました。

/**
 * 10進数の文字列から数値に変換する。
 */

int ato1_dec(char *str, int keta) {
    int result = 0;
    int i;
    int kurai;
    int k = keta;
    for (i = 0; i < keta; i++) {
        if (k == 2) kurai = 10;
        if (k == 3) kurai = 100;
        if (k == 4) kurai = 1000;
        if (k == 5) kurai = 10000;
        if (k == 6) kurai = 100000;
        if (k == 7) kurai = 1000000;
        if (k == 8) kurai = 10000000;
        if (k == 9) kurai = 100000000;
        result += kurai * (str[i] & 0x0f);
    }
    return result;
}

/**
 * 16進数の文字列から数値に変換する。
 */
int ato1_hex(char *str, int keta) {
    int result = 0;
    int i;
    int kurai;
    int value;
    int k = keta;
    for (i = keta-1; i >= 0; i--) {
        value = (str[i] > 0x40 ? 9 : 0) + (str[i] & 0x0f);
        result = result << 4 + value;
    }
    return result;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] この配列、狭いッ!!

このエントリーをはてなブックマークに追加

大学の同級生がこんなウンコード書いてコア...

#include<stdio.h>
#include<stdlib.h>

...

鑑賞する »

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »